in plugin-rest/spring-security-rest/src/main/groovy/grails/plugin/springsecurity/rest/token/rendering/DefaultAccessTokenJsonRenderer.groovy [42:78]
String generateJson(AccessToken accessToken) {
Assert.isInstanceOf(UserDetails, accessToken.principal, "A UserDetails implementation is required")
UserDetails userDetails = accessToken.principal as UserDetails
Map result = [
(usernamePropertyName) : userDetails.username,
(authoritiesPropertyName) : accessToken.authorities.collect { GrantedAuthority role -> role.authority }
]
if (useBearerToken) {
result.token_type = 'Bearer'
result.access_token = accessToken.accessToken
if (accessToken.expiration) {
result.expires_in = accessToken.expiration
}
if (accessToken.refreshToken) result.refresh_token = accessToken.refreshToken
} else {
result["$tokenPropertyName".toString()] = accessToken.accessToken
}
if (userDetails instanceof OauthUser) {
CommonProfile profile = (userDetails as OauthUser).userProfile
if(profile) {
result.email = profile.email
result.displayName = profile.displayName
}
}
JSON jsonResult = result as JSON
log.debug "Generated JSON:\n${jsonResult.toString(true)}"
return jsonResult.toString()
}