protected AuthzSSOSession newSession(Request request, Response response, AuthzAuthentication authc) { SimpleAuthzSSOSession session = new SimpleAuthzSSOSession(); UserPrincipal user = authc.getAuthentication().getUser(); String token = authc.getAuthentication().getToken(); Map<String, Object> claims = verifier.verify(token); session.setId((String) claims.get(JWT.CLAIM_JWT_ID)); session.setUserId(user.getIdAsString()); session.setUsername(user.getLoginName()); session.setToken(authc.getAuthentication().getToken()); session.setExpiresIn(config.getDefaultLoginSessionExpires()); session.setCreated(System.currentTimeMillis()); return session; }
protected AuthzSSOSession newSession(Request request, Response response, AuthzAuthentication authc) { SimpleAuthzSSOSession session = new SimpleAuthzSSOSession(); UserPrincipal user = authc.getAuthentication().getUser(); String token = authc.getAuthentication().getToken(); Map<String, Object> claims = verifier.verify(token); session.setId((String) claims.get(JwtTokenAuthenticator.JWT_ID)); session.setUserId(user.getIdAsString()); session.setUsername(user.getLoginName()); session.setToken(authc.getAuthentication().getToken()); session.setExpiresIn(config.getDefaultLoginSessionExpires()); session.setCreated(System.currentTimeMillis()); return session; }
@Override public OAuth2AccessToken fetchAndSaveAccessToken(Request request, Authentication authc, String code) { HttpRequest req = hc.request(config.getServerTokenEndpointUrl()) .addFormParam("grant_type", "authorization_code") .addFormParam("code", code) .addHeader("Authorization", "Basic " + Base64.encode(config.getClientId()+":"+config.getClientSecret())); HttpResponse resp = req.post(); if(resp.isOk()) { Map<String, Object> map = JSON.decode(resp.getString()); if(!map.containsKey("error")) { SimpleWacAccessToken at = new SimpleWacAccessToken(); at.setCreated(System.currentTimeMillis()); at.setToken((String)map.get("access_token")); at.setRefreshToken((String)map.get("refresh_token")); at.setExpiresIn((Integer)map.get("expires_in")); at.setUserId(authc.getUser().getIdAsString()); saveAccessToken(request, at); return at; }else{ throw new AuthorizationCodeInvalidException("Cannot obtain access token, authorization code may be invalid : " + map.get("error")); } }else { throw new ObtainAccessTokenFailedException("Obtain access token failed, " + resp.getStatus() + " -> " + resp.getString()); } }
if(null != user && !user.getIdAsString().equals(at.getUserId())) { removeAccessToken(request); if(null != config.getTokenStore()) {