default String getIdToken() { return getParameter(ID_TOKEN); }
protected State handleOAuth2ServerError(Request request, Response response, OAuth2Params params) throws Throwable { if(Strings.isEmpty(config.getErrorView())) { View view = request.getView(config.getErrorView()); //todo : handle null view if(null != view) { view.render(request, response); } return State.INTERCEPTED; } return error(request, response, params.getError(), params.getErrorDescription()); }
protected State handleOAuth2ServerSuccess(Request request, Response response, OAuth2Params params) throws Throwable { AccessToken at = null; if(config.isLoginWithAccessToken()) { String code = params.getCode(); if(Strings.isEmpty(code)) { return error(request, response, "illegal_state", "code required from oauth2 server"); } at = codeVerifier.verifyCode(code); if(null == at) { return error(request, response, "illegal_state", "invalid authorization code"); } } String idToken = params.getIdToken(); if(Strings.isEmpty(idToken)) { return error(request, response, "illegal_state", "id_token required from oauth2 server"); } try{ IdToken credentials = idTokenVerifier.verifyIdToken(params, idToken); Authentication authc = authenticate(params, credentials, at); login(request, response, authc); return State.CONTINUE; }catch (TokenVerifyException e) { return error(request, response, e.getErrorCode().name(), e.getMessage()); } }
default boolean isError() { return !Strings.isEmpty(getError()); }
@Override public State handleServerRedirectRequest( Request request, Response response, AuthenticationContext context) throws Throwable{ OAuth2Params params = new OAuth2RequestParams(request); if(params.isError()) { return handleOAuth2ServerError(request, response, params); }else{ return handleOAuth2ServerSuccess(request, response, params); } }
default String getError() { return getParameter(ERROR); }
default String getClientId() { return getParameter(CLIENT_ID); }
default String getCode() { return getParameter(CODE); }
default String getErrorDescription() { return getParameter(ERROR_DESCRIPTION); }