only save strings in the Extensions map
parent
93a91c8f84
commit
a7905c9f82
|
@ -184,7 +184,7 @@ public class DefaultOAuth2ProviderTokenService implements OAuth2TokenEntityServi
|
||||||
|
|
||||||
if (originalAuthRequest.getExtensions() != null && originalAuthRequest.getExtensions().containsKey("approved_site")) {
|
if (originalAuthRequest.getExtensions() != null && originalAuthRequest.getExtensions().containsKey("approved_site")) {
|
||||||
|
|
||||||
Long apId = (Long) originalAuthRequest.getExtensions().get("approved_site");
|
Long apId = Long.parseLong((String) originalAuthRequest.getExtensions().get("approved_site"));
|
||||||
ApprovedSite ap = approvedSiteService.getById(apId);
|
ApprovedSite ap = approvedSiteService.getById(apId);
|
||||||
Set<OAuth2AccessTokenEntity> apTokens = ap.getApprovedAccessTokens();
|
Set<OAuth2AccessTokenEntity> apTokens = ap.getApprovedAccessTokens();
|
||||||
apTokens.add(savedToken);
|
apTokens.add(savedToken);
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.mitre.openid.connect.request;
|
package org.mitre.openid.connect.request;
|
||||||
|
|
||||||
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -64,6 +65,7 @@ import static org.mitre.openid.connect.request.ConnectRequestParameters.PROMPT;
|
||||||
import static org.mitre.openid.connect.request.ConnectRequestParameters.REDIRECT_URI;
|
import static org.mitre.openid.connect.request.ConnectRequestParameters.REDIRECT_URI;
|
||||||
import static org.mitre.openid.connect.request.ConnectRequestParameters.REQUEST;
|
import static org.mitre.openid.connect.request.ConnectRequestParameters.REQUEST;
|
||||||
import static org.mitre.openid.connect.request.ConnectRequestParameters.RESPONSE_TYPE;
|
import static org.mitre.openid.connect.request.ConnectRequestParameters.RESPONSE_TYPE;
|
||||||
|
import static org.mitre.openid.connect.request.ConnectRequestParameters.SCOPE;
|
||||||
import static org.mitre.openid.connect.request.ConnectRequestParameters.STATE;
|
import static org.mitre.openid.connect.request.ConnectRequestParameters.STATE;
|
||||||
|
|
||||||
@Component("connectOAuth2RequestFactory")
|
@Component("connectOAuth2RequestFactory")
|
||||||
|
@ -356,7 +358,7 @@ public class ConnectOAuth2RequestFactory extends DefaultOAuth2RequestFactory {
|
||||||
request.getExtensions().put(PROMPT, prompt);
|
request.getExtensions().put(PROMPT, prompt);
|
||||||
}
|
}
|
||||||
|
|
||||||
Set<String> scope = OAuth2Utils.parseParameterList(claims.getStringClaim("scope"));
|
Set<String> scope = OAuth2Utils.parseParameterList(claims.getStringClaim(SCOPE));
|
||||||
if (scope != null && !scope.isEmpty()) {
|
if (scope != null && !scope.isEmpty()) {
|
||||||
if (!scope.equals(request.getScope())) {
|
if (!scope.equals(request.getScope())) {
|
||||||
logger.info("Mismatch between request object and regular parameter for scope, using request object");
|
logger.info("Mismatch between request object and regular parameter for scope, using request object");
|
||||||
|
|
|
@ -27,6 +27,7 @@ public interface ConnectRequestParameters {
|
||||||
public String LOGIN_HINT = "login_hint";
|
public String LOGIN_HINT = "login_hint";
|
||||||
public String MAX_AGE = "max_age";
|
public String MAX_AGE = "max_age";
|
||||||
public String CLAIMS = "claims";
|
public String CLAIMS = "claims";
|
||||||
|
public String SCOPE = "scope";
|
||||||
public String NONCE = "nonce";
|
public String NONCE = "nonce";
|
||||||
public String PROMPT = "prompt";
|
public String PROMPT = "prompt";
|
||||||
|
|
||||||
|
|
|
@ -109,9 +109,9 @@ public class DefaultOIDCTokenService implements OIDCTokenService {
|
||||||
|| (request.getExtensions().containsKey("idtoken")) // TODO: parse the ID Token claims (#473) -- for now assume it could be in there
|
|| (request.getExtensions().containsKey("idtoken")) // TODO: parse the ID Token claims (#473) -- for now assume it could be in there
|
||||||
|| (client.getRequireAuthTime() != null && client.getRequireAuthTime())) {
|
|| (client.getRequireAuthTime() != null && client.getRequireAuthTime())) {
|
||||||
|
|
||||||
Date authTime = (Date) request.getExtensions().get(AuthenticationTimeStamper.AUTH_TIMESTAMP);
|
Long authTimestamp = Long.parseLong((String) request.getExtensions().get(AuthenticationTimeStamper.AUTH_TIMESTAMP));
|
||||||
if (authTime != null) {
|
if (authTimestamp != null) {
|
||||||
idClaims.setClaim("auth_time", authTime.getTime() / 1000);
|
idClaims.setClaim("auth_time", authTimestamp / 1000L);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -162,7 +162,8 @@ public class TofuUserApprovalHandler implements UserApprovalHandler {
|
||||||
ap.setAccessDate(new Date());
|
ap.setAccessDate(new Date());
|
||||||
approvedSiteService.save(ap);
|
approvedSiteService.save(ap);
|
||||||
|
|
||||||
authorizationRequest.getExtensions().put(APPROVED_SITE, ap.getId());
|
String apId = ap.getId().toString();
|
||||||
|
authorizationRequest.getExtensions().put(APPROVED_SITE, apId);
|
||||||
authorizationRequest.setApproved(true);
|
authorizationRequest.setApproved(true);
|
||||||
alreadyApproved = true;
|
alreadyApproved = true;
|
||||||
|
|
||||||
|
@ -177,7 +178,8 @@ public class TofuUserApprovalHandler implements UserApprovalHandler {
|
||||||
|
|
||||||
//Create an approved site
|
//Create an approved site
|
||||||
ApprovedSite newSite = approvedSiteService.createApprovedSite(clientId, userId, null, ws.getAllowedScopes(), ws);
|
ApprovedSite newSite = approvedSiteService.createApprovedSite(clientId, userId, null, ws.getAllowedScopes(), ws);
|
||||||
authorizationRequest.getExtensions().put(APPROVED_SITE, newSite.getId());
|
String newSiteId = newSite.getId().toString();
|
||||||
|
authorizationRequest.getExtensions().put(APPROVED_SITE, newSiteId);
|
||||||
authorizationRequest.setApproved(true);
|
authorizationRequest.setApproved(true);
|
||||||
|
|
||||||
setAuthTime(authorizationRequest);
|
setAuthTime(authorizationRequest);
|
||||||
|
@ -252,7 +254,8 @@ public class TofuUserApprovalHandler implements UserApprovalHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
ApprovedSite newSite = approvedSiteService.createApprovedSite(clientId, userId, timeout, allowedScopes, null);
|
ApprovedSite newSite = approvedSiteService.createApprovedSite(clientId, userId, timeout, allowedScopes, null);
|
||||||
authorizationRequest.getExtensions().put(APPROVED_SITE, newSite.getId());
|
String newSiteId = newSite.getId().toString();
|
||||||
|
authorizationRequest.getExtensions().put(APPROVED_SITE, newSiteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
setAuthTime(authorizationRequest);
|
setAuthTime(authorizationRequest);
|
||||||
|
@ -277,7 +280,8 @@ public class TofuUserApprovalHandler implements UserApprovalHandler {
|
||||||
if (session != null) {
|
if (session != null) {
|
||||||
Date authTime = (Date) session.getAttribute(AuthenticationTimeStamper.AUTH_TIMESTAMP);
|
Date authTime = (Date) session.getAttribute(AuthenticationTimeStamper.AUTH_TIMESTAMP);
|
||||||
if (authTime != null) {
|
if (authTime != null) {
|
||||||
authorizationRequest.getExtensions().put(AuthenticationTimeStamper.AUTH_TIMESTAMP, authTime);
|
String authTimeString = Long.toString(authTime.getTime());
|
||||||
|
authorizationRequest.getExtensions().put(AuthenticationTimeStamper.AUTH_TIMESTAMP, authTimeString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue