Include additional claims in ID token
Read https://github.com/indigo-iam/iam/issues/202pull/1611/head
parent
366660dbf7
commit
f6e6954450
|
@ -0,0 +1,12 @@
|
|||
package org.mitre.openid.connect.service;
|
||||
|
||||
import java.util.Date;
|
||||
import org.mitre.oauth2.model.OAuth2AccessTokenEntity;
|
||||
import org.springframework.security.oauth2.provider.OAuth2Request;
|
||||
import com.nimbusds.jwt.JWTClaimsSet;
|
||||
|
||||
public interface IDTokenClaimsEnhancer {
|
||||
|
||||
void enhanceIdTokenClaims(JWTClaimsSet.Builder claimsBuilder, OAuth2Request request, Date issueTime,
|
||||
String sub, OAuth2AccessTokenEntity accessToken);
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package org.mitre.openid.connect.service.impl;
|
||||
|
||||
import java.util.Date;
|
||||
import org.mitre.oauth2.model.OAuth2AccessTokenEntity;
|
||||
import org.mitre.openid.connect.service.IDTokenClaimsEnhancer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.security.oauth2.provider.OAuth2Request;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.nimbusds.jwt.JWTClaimsSet;
|
||||
|
||||
@Service("defaultIdTokenClaimsEnhancer")
|
||||
public class DefaultIdTokenClaimsEnhancer implements IDTokenClaimsEnhancer {
|
||||
|
||||
/**
|
||||
* Logger for this class
|
||||
*/
|
||||
private static final Logger logger = LoggerFactory.getLogger(DefaultOIDCTokenService.class);
|
||||
|
||||
@Override
|
||||
public void enhanceIdTokenClaims(JWTClaimsSet.Builder claimsBuilder, OAuth2Request request, Date issueTime,
|
||||
String sub, OAuth2AccessTokenEntity accessToken) {
|
||||
|
||||
logger.debug("Enhancing Id-Token claims: no claims added.");
|
||||
}
|
||||
|
||||
}
|
|
@ -36,6 +36,7 @@ import org.mitre.oauth2.service.AuthenticationHolderEntityService;
|
|||
import org.mitre.oauth2.service.OAuth2TokenEntityService;
|
||||
import org.mitre.oauth2.service.SystemScopeService;
|
||||
import org.mitre.openid.connect.config.ConfigurationPropertiesBean;
|
||||
import org.mitre.openid.connect.service.IDTokenClaimsEnhancer;
|
||||
import org.mitre.openid.connect.service.OIDCTokenService;
|
||||
import org.mitre.openid.connect.util.IdTokenHashUtils;
|
||||
import org.mitre.openid.connect.web.AuthenticationTimeStamper;
|
||||
|
@ -94,6 +95,9 @@ public class DefaultOIDCTokenService implements OIDCTokenService {
|
|||
@Autowired
|
||||
private OAuth2TokenEntityService tokenService;
|
||||
|
||||
@Autowired
|
||||
private IDTokenClaimsEnhancer idTokenClaimsEnhancer;
|
||||
|
||||
@Override
|
||||
public JWT createIdToken(ClientDetailsEntity client, OAuth2Request request, Date issueTime, String sub, OAuth2AccessTokenEntity accessToken) {
|
||||
|
||||
|
@ -142,6 +146,8 @@ public class DefaultOIDCTokenService implements OIDCTokenService {
|
|||
idClaims.claim("nonce", nonce);
|
||||
}
|
||||
|
||||
idTokenClaimsEnhancer.enhanceIdTokenClaims(idClaims, request, issueTime, sub, accessToken);
|
||||
|
||||
Set<String> responseTypes = request.getResponseTypes();
|
||||
|
||||
if (responseTypes.contains("token")) {
|
||||
|
|
Loading…
Reference in New Issue