OK, everything works great but when I try get info from graph v1.0 (because I need more info about user info like mailNickname
oidc.endpoint.userinfo=https://graph.microsoft.com/v1.0/me
i get error.
response ({
"error": {
"code": "BadRequest",
"message": "The MIME type 'text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2' requires a '/' character between type and subtype, such as 'text/plain'.",
"innerError": {
"request-id": "b0aaaeb0-1aaa-4bc2-9aaa-511aaaaae4ae",
"date": "2020-03-19T17:17:13"
}
}
}
)
This is because we send in request header:
Accept: text/html, image/gif, image/jpeg, *; q=.2, /; q=.2
Is there any option to send
Accept: application/json
?
In my opinion it makes more sense because we always get JSON.
Looks very very easy to fix in JAVA code
See resolution in:
StackOverflow - Bad Request 400 when making API call to Microsoft Graph
I don’t know Java but i think header should be added here:
OIDCUserManager.java
line 177
UserInfoRequest userinfoRequest =
new UserInfoRequest(userInfoEndpoint, this.configuration.getUserInfoEndPointMethod(), accessToken);
HTTPRequest userinfoHTTP = userinfoRequest.toHTTPRequest();
userinfoHTTP.setHeader("User-Agent", this.getClass().getPackage().getImplementationTitle() + '/'
+ this.getClass().getPackage().getImplementationVersion());