@Override public String getToken() { return this.at.getToken(); }
protected void send(HttpRequest request, AccessToken at, Consumer<HttpResponse> consumer) { if (at != null) { request.addHeader(Headers.AUTHORIZATION, OAuth2Constants.BEARER + " " + at.getToken()); } if(this.preSendHandler!=null){ preSendHandler.accept(request); } HttpResponse response = request.send(); if (response.getStatus() == HTTP.SC_UNAUTHORIZED && at != null) { at = tokenFetcher.refreshAccessToken(at); request.addHeader(Headers.AUTHORIZATION, OAuth2Constants.BEARER + " " + at.getToken()); response = request.send(); } consumer.accept(response); if(this.postSendHandler!=null){ postSendHandler.accept(response); } }
protected Authentication authenticate(OAuth2Params params, IdToken idtoken, AccessToken at) { String clientId = idtoken.getClientId(); String userId = idtoken.getUserId(); UserPrincipal user = idtoken.getUserInfo(); ClientPrincipal client = idtoken.getClientInfo(); if(config.isForceLookupUserInfo() && null != at) { user = userInfoLookup.lookupUserInfo(at.getToken(), userId); } if(null != userDetailsLookup && !Strings.isEmpty(userId)) { user = userDetailsLookup.lookupUserDetails(at.getToken(), userId); } if(null == client && !Strings.isEmpty(clientId)) { client = new OAuth2Client(clientId, idtoken.getClaims()); } OAuth2LoginAuthentication authc = new OAuth2LoginAuthentication(user, idtoken); if(null != client) { authc.setClientPrincipal(client); } if(null != at) { authc.setAccessToken(at); } return authc; }
@Override public State handleAuthenticationResolved(Request request, Response response, AuthenticationContext context) throws Throwable { Authentication authc = context.getAuthentication(); if(null != authc) { AccessToken at; if(authc instanceof OAuth2LoginAuthentication) { at = ((OAuth2LoginAuthentication) authc).getAccessToken(); if(null != at) { accessTokenStore.saveAccessToken(request, context, at); } }else{ at = accessTokenStore.loadAccessToken(request, context); } if(null != at) { if(at.isExpired()) { log.info("AT '{}' expired, refresh it", at.getToken()); at = accessTokenStore.refreshAndSaveAccessToken(request, context, at); } TokenContext.setAccessToken(request, at); } } return State.CONTINUE; }