Skip to content

Commit a15929d

Browse files
authored
fix: accept application/json;charset=UTF-8 from Keycloak (#69)
Closes #68.
1 parent dc3dce7 commit a15929d

2 files changed

Lines changed: 10 additions & 5 deletions

File tree

pkg/keycloak/rest.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ func (client *KeycloakClient) GetJSON(ctx context.Context, url string, result an
2626
return resp, err
2727
}
2828

29+
contentType, _, _ := strings.Cut(resp.Header.Get("Content-Type"), ";")
2930
var parseErr error
30-
if resp.Header.Get("Content-Type") == jsonContentType {
31+
if contentType == jsonContentType {
3132
parseErr = tryParseResponse(resp, result)
3233
} else {
3334
return resp, fmt.Errorf("expected '%s' but got response with content type '%s'", jsonContentType, resp.Header.Get("Content-Type"))
@@ -60,8 +61,9 @@ func (client *KeycloakClient) PostJSON(ctx context.Context, url string, body any
6061
return resp, err
6162
}
6263

64+
contentType, _, _ := strings.Cut(resp.Header.Get("Content-Type"), ";")
6365
var parseErr error
64-
if resp.Header.Get("Content-Type") == jsonContentType {
66+
if contentType == jsonContentType {
6567
parseErr = tryParseResponse(resp, result)
6668
} else if resp.StatusCode == 204 {
6769
// No content
@@ -91,8 +93,9 @@ func (client *KeycloakClient) PostForm(ctx context.Context, url string, data url
9193
return resp, err
9294
}
9395

96+
contentType, _, _ := strings.Cut(resp.Header.Get("Content-Type"), ";")
9497
var parseErr error
95-
if resp.Header.Get("Content-Type") == jsonContentType {
98+
if contentType == jsonContentType {
9699
parseErr = tryParseResponse(resp, result)
97100
} else {
98101
return resp, fmt.Errorf("expected '%s' but got response with content type '%s'", jsonContentType, resp.Header.Get("Content-Type"))

pkg/renkuapi/auth.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,8 +324,9 @@ func (auth *RenkuApiAuth) get(ctx context.Context, url string, result any) (resp
324324
return resp, err
325325
}
326326

327+
contentType, _, _ := strings.Cut(resp.Header.Get("Content-Type"), ";")
327328
var parseErr error
328-
if resp.Header.Get("Content-Type") == jsonContentType {
329+
if contentType == jsonContentType {
329330
parseErr = tryParseResponse(resp, result)
330331
} else {
331332
return resp, fmt.Errorf("expected '%s' but got response with content type '%s'", jsonContentType, resp.Header.Get("Content-Type"))
@@ -351,8 +352,9 @@ func (auth *RenkuApiAuth) postForm(ctx context.Context, url string, data url.Val
351352
return resp, err
352353
}
353354

355+
contentType, _, _ := strings.Cut(resp.Header.Get("Content-Type"), ";")
354356
var parseErr error
355-
if resp.Header.Get("Content-Type") == jsonContentType {
357+
if contentType == jsonContentType {
356358
parseErr = tryParseResponse(resp, result)
357359
} else {
358360
return resp, fmt.Errorf("expected '%s' but got response with content type '%s'", jsonContentType, resp.Header.Get("Content-Type"))

0 commit comments

Comments
 (0)