Skip to content

Commit 7c0822f

Browse files
committed
Fix SonarCloud security issues
- Remove example secret from config.yaml - use empty string for public client - Add wildcard (**/) prefix to config.yaml resource patterns - Add secrets: prefixed rule exclusions (secrets analyzer may use different keys) The static client example now shows a public client configuration (no secret required) instead of a confidential client with a placeholder secret.
1 parent e8e27cc commit 7c0822f

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

config.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,20 +177,20 @@ verifier:
177177
# Note: secrets.yaml currently only supports oidc.subject_salt, not static client secrets.
178178
# For production, consider using dynamic client registration or environment variables.
179179
# static_clients:
180-
# - client_id: "my-static-client"
181-
# client_secret: "my-secret" # Stored in plaintext here; secrets.yaml not yet supported
180+
# - client_id: "example-client-id"
181+
# client_secret: "" # Set via environment variable or leave empty for public clients
182182
# redirect_uris:
183183
# - "https://example.com/callback"
184184
# allowed_scopes: # If omitted, defaults to openid, profile, email, address, phone
185185
# - "openid"
186186
# - "profile"
187187
# - "pid"
188-
# token_endpoint_auth_method: "client_secret_basic" # Or "none" for public clients
188+
# token_endpoint_auth_method: "none" # Use "none" for public clients (no secret required)
189189
# grant_types: # Optional, default: ["authorization_code"]
190190
# - "authorization_code"
191191
# response_types: # Optional, default: ["code"]
192192
# - "code"
193-
# client_name: "My Static Client" # Optional
193+
# client_name: "Example Static Client" # Optional
194194
openid4vp:
195195
presentation_timeout: 300
196196
# Template-based presentation requests (optional)

internal/verifier/apiv1/handler_client_registration_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1082,9 +1082,9 @@ func TestGetClientByID(t *testing.T) {
10821082
client, mockDB := CreateTestClientWithMock(&model.Cfg{
10831083
Verifier: &model.Verifier{
10841084
OIDC: &model.OIDCConfig{
1085-
Issuer: "https://test.example.com",
1086-
SubjectType: "pairwise",
1087-
SubjectSalt: "test-salt",
1085+
Issuer: "https://test.example.com",
1086+
SubjectType: "pairwise",
1087+
SubjectSalt: "test-salt",
10881088
StaticClients: staticClients,
10891089
},
10901090
},

sonar-project.properties

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ sonar.go.coverage.reportPaths=coverage.out,didcomm_coverage.out
2929
# - This is a key-wrapping primitive, not general-purpose encryption
3030
#
3131
# These patterns are required for standards compliance and interoperability.
32-
sonar.issue.ignore.multicriteria=e1,e2,e3,e4,e5,e6,e7,e8
32+
sonar.issue.ignore.multicriteria=e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12
3333

3434
# Exclude S5542 from JWE crypto implementation (AES-CBC for content encryption, AES Key Wrap)
3535
sonar.issue.ignore.multicriteria.e1.ruleKey=go:S5542
@@ -55,12 +55,25 @@ sonar.issue.ignore.multicriteria.e5.resourceKey=**/*_test.go
5555

5656
# Exclude from example config - commented examples show format, not real credentials
5757
sonar.issue.ignore.multicriteria.e6.ruleKey=go:S6418
58-
sonar.issue.ignore.multicriteria.e6.resourceKey=config.yaml
58+
sonar.issue.ignore.multicriteria.e6.resourceKey=**/config.yaml
5959

6060
# S2068 (go:S2068) - "Credentials should not be hard-coded"
6161
# Same rationale as S6418 above
6262
sonar.issue.ignore.multicriteria.e7.ruleKey=go:S2068
6363
sonar.issue.ignore.multicriteria.e7.resourceKey=**/*_test.go
6464

6565
sonar.issue.ignore.multicriteria.e8.ruleKey=go:S2068
66-
sonar.issue.ignore.multicriteria.e8.resourceKey=config.yaml
66+
sonar.issue.ignore.multicriteria.e8.resourceKey=**/config.yaml
67+
68+
# Secrets analyzer rules (may use different prefix)
69+
sonar.issue.ignore.multicriteria.e9.ruleKey=secrets:S6418
70+
sonar.issue.ignore.multicriteria.e9.resourceKey=**/*_test.go
71+
72+
sonar.issue.ignore.multicriteria.e10.ruleKey=secrets:S6418
73+
sonar.issue.ignore.multicriteria.e10.resourceKey=**/config.yaml
74+
75+
sonar.issue.ignore.multicriteria.e11.ruleKey=secrets:S2068
76+
sonar.issue.ignore.multicriteria.e11.resourceKey=**/*_test.go
77+
78+
sonar.issue.ignore.multicriteria.e12.ruleKey=secrets:S2068
79+
sonar.issue.ignore.multicriteria.e12.resourceKey=**/config.yaml

0 commit comments

Comments
 (0)