|
@@ -84,6 +84,9 @@ public class OpenIdConnectAuthenticator implements SsoAuthenticator {
|
|
@Override
|
|
@Override
|
|
public LoginCredential getLoginCredential() {
|
|
public LoginCredential getLoginCredential() {
|
|
return LaRequestUtil.getOptionalRequest().map(request -> {
|
|
return LaRequestUtil.getOptionalRequest().map(request -> {
|
|
|
|
+ if (logger.isDebugEnabled()) {
|
|
|
|
+ logger.debug("Logging in with OpenID Connect Authenticator");
|
|
|
|
+ }
|
|
final HttpSession session = request.getSession(false);
|
|
final HttpSession session = request.getSession(false);
|
|
if (session != null) {
|
|
if (session != null) {
|
|
final String sesState = (String) session.getAttribute(OIC_STATE);
|
|
final String sesState = (String) session.getAttribute(OIC_STATE);
|
|
@@ -91,12 +94,12 @@ public class OpenIdConnectAuthenticator implements SsoAuthenticator {
|
|
session.removeAttribute(OIC_STATE);
|
|
session.removeAttribute(OIC_STATE);
|
|
final String code = request.getParameter("code");
|
|
final String code = request.getParameter("code");
|
|
final String reqState = request.getParameter("state");
|
|
final String reqState = request.getParameter("state");
|
|
|
|
+ if (logger.isDebugEnabled()) {
|
|
|
|
+ logger.debug("code: {}, state(request): {}, state(session): {}", code, reqState, sesState);
|
|
|
|
+ }
|
|
if (sesState.equals(reqState) && StringUtil.isNotBlank(code)) {
|
|
if (sesState.equals(reqState) && StringUtil.isNotBlank(code)) {
|
|
return processCallback(request, code);
|
|
return processCallback(request, code);
|
|
}
|
|
}
|
|
- if (logger.isDebugEnabled()) {
|
|
|
|
- logger.debug("code:" + code + " state(request):" + reqState + " state(session):" + sesState);
|
|
|
|
- }
|
|
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -126,9 +129,9 @@ public class OpenIdConnectAuthenticator implements SsoAuthenticator {
|
|
final String jwtSigniture = new String(Base64.decodeBase64(jwt[2]), Constants.UTF_8_CHARSET);
|
|
final String jwtSigniture = new String(Base64.decodeBase64(jwt[2]), Constants.UTF_8_CHARSET);
|
|
|
|
|
|
if (logger.isDebugEnabled()) {
|
|
if (logger.isDebugEnabled()) {
|
|
- logger.debug("jwtHeader: " + jwtHeader);
|
|
|
|
- logger.debug("jwtClaim: " + jwtClaim);
|
|
|
|
- logger.debug("jwtSigniture: " + jwtSigniture);
|
|
|
|
|
|
+ logger.debug("jwtHeader: {}", jwtHeader);
|
|
|
|
+ logger.debug("jwtClaim: {}", jwtClaim);
|
|
|
|
+ logger.debug("jwtSigniture: {}", jwtSigniture);
|
|
}
|
|
}
|
|
|
|
|
|
// TODO validate signiture
|
|
// TODO validate signiture
|
|
@@ -142,6 +145,9 @@ public class OpenIdConnectAuthenticator implements SsoAuthenticator {
|
|
attributes.put("jwtclaim", jwtClaim);
|
|
attributes.put("jwtclaim", jwtClaim);
|
|
attributes.put("jwtsign", jwtSigniture);
|
|
attributes.put("jwtsign", jwtSigniture);
|
|
|
|
|
|
|
|
+ if (logger.isDebugEnabled()) {
|
|
|
|
+ logger.debug("attribute: {}", attributes);
|
|
|
|
+ }
|
|
parseJwtClaim(jwtClaim, attributes);
|
|
parseJwtClaim(jwtClaim, attributes);
|
|
|
|
|
|
return new OpenIdConnectCredential(attributes);
|
|
return new OpenIdConnectCredential(attributes);
|