List of usage examples for org.springframework.security.oauth2.common OAuth2AccessToken getExpiresIn
int getExpiresIn();
From source file:am.ik.categolj2.app.authentication.AuthenticationHelper.java
int getRefreshTokenMaxAge(OAuth2AccessToken accessToken) { return accessToken.getExpiresIn() * 10 /* FIXME */; }
From source file:it.smartcommunitylab.aac.controller.ResourceAccessController.java
@ApiOperation(value = "Get token info") @RequestMapping(method = RequestMethod.GET, value = "/resources/token") @Deprecated/*from w ww . j a va2 s . c o m*/ public @ResponseBody AACTokenValidation getTokenInfo(HttpServletRequest request, HttpServletResponse response) { AACTokenValidation result = new AACTokenValidation(); try { String parsedToken = it.smartcommunitylab.aac.common.Utils.parseHeaderToken(request); OAuth2Authentication auth = resourceServerTokenServices.loadAuthentication(parsedToken); OAuth2AccessToken storedToken = tokenStore.getAccessToken(auth); long expiresIn = storedToken.getExpiresIn(); String clientId = auth.getOAuth2Request().getClientId(); ObjectMapper mapper = new ObjectMapper(); mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker() .withFieldVisibility(JsonAutoDetect.Visibility.ANY) .withGetterVisibility(JsonAutoDetect.Visibility.ANY) .withSetterVisibility(JsonAutoDetect.Visibility.ANY) .withCreatorVisibility(JsonAutoDetect.Visibility.ANY)); String userName = null; String userId = null; boolean applicationToken = false; // System.err.println(auth.getPrincipal()); if (auth.getPrincipal() instanceof User) { User principal = (User) auth.getPrincipal(); userId = principal.getUsername(); // } if (auth.getPrincipal() instanceof it.smartcommunitylab.aac.model.User) { // it.smartcommunitylab.aac.model.User principal = (it.smartcommunitylab.aac.model.User)auth.getPrincipal(); // userId = principal.getId().toString(); // userName = getWSO2Name(user); } else { ClientDetailsEntity client = clientDetailsRepository.findByClientId(clientId); applicationToken = true; userId = "" + client.getDeveloperId(); // if (client.getParameters() != null) { // Map<String,?> parameters = mapper.readValue(client.getParameters(), Map.class); // userName = (String)parameters.get("username"); // } else { //// it.smartcommunitylab.aac.model.User user = userRepository.findOne(Long.parseLong(userId)); // userName = "admin"; // userName = (String)auth.getPrincipal(); // } } userName = userManager.getUserInternalName(Long.parseLong(userId)); result.setUsername(userName); result.setUserId(userId); result.setClientId(clientId); result.setScope(Iterables.toArray(auth.getOAuth2Request().getScope(), String.class)); result.setGrantType(auth.getOAuth2Request().getGrantType()); long now = System.currentTimeMillis(); result.setIssuedTime(now); result.setValidityPeriod(expiresIn); logger.info("Requested token " + parsedToken + " expires in " + result.getValidityPeriod()); result.setValid(true); result.setApplicationToken(applicationToken); // System.err.println(mapper.writeValueAsString(response)); } catch (InvalidTokenException e) { logger.error("Invalid token: " + e.getMessage()); response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return null; } catch (Exception e) { logger.error("Error getting info for token: " + e.getMessage()); response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return null; } return result; }
From source file:am.ik.categolj2.app.authentication.AuthenticationHelper.java
void saveAccessTokenInCookie(OAuth2AccessToken accessToken, HttpServletResponse response) throws UnsupportedEncodingException { Cookie accessTokenValueCookie = new Cookie(Categolj2Cookies.ACCESS_TOKEN_VALUE_COOKIE, URLEncoder.encode(accessToken.getValue(), "UTF-8")); accessTokenValueCookie.setMaxAge(accessToken.getExpiresIn()); Cookie accessTokenExpireCookie = new Cookie(Categolj2Cookies.ACCESS_TOKEN_EXPIRATION_COOKIE, URLEncoder.encode(String.valueOf(accessToken.getExpiration().getTime()), "UTF-8")); accessTokenExpireCookie.setMaxAge(accessToken.getExpiresIn()); response.addCookie(accessTokenValueCookie); response.addCookie(accessTokenExpireCookie); OAuth2RefreshToken refreshToken = accessToken.getRefreshToken(); if (refreshToken != null) { Cookie refreshTokenCookie = new Cookie(Categolj2Cookies.REFRESH_TOKEN_VALUE_COOKIE, URLEncoder.encode(refreshToken.getValue(), "UTF-8")); refreshTokenCookie.setMaxAge(getRefreshTokenMaxAge(accessToken)); response.addCookie(refreshTokenCookie); }//from w w w. j a v a 2 s .c o m }
From source file:org.apigw.authserver.svc.impl.TokenServicesImplTest.java
@Test @DirtiesContext//from w w w.j av a 2s . co m public void testDefaultTokenExpiry() throws Exception { services.setAccessTokenValiditySeconds(100); OAuth2Authentication expectedAuthentication = new OAuth2Authentication( createAuthorizationRequest(CLIENT, Collections.singleton(READ_SCOPE)), new TestAuthentication(false)); OAuth2AccessToken accessToken = services.createAccessToken(expectedAuthentication); assertTrue(100 >= accessToken.getExpiresIn()); }
From source file:org.apigw.authserver.svc.impl.TokenServicesImplTest.java
@Test @DirtiesContext//from www. j a va 2 s . c om public void testLeastRoleSpecificTokenExpiry() throws Exception { services.setAccessTokenValiditySeconds(100 * 24 * 3600); OAuth2Authentication expectedAuthentication = new OAuth2Authentication( createAuthorizationRequest(CLIENT, new HashSet<String>(Arrays.asList(READ_SCOPE, WRITE_SCOPE))), new TestAuthentication(false)); OAuth2AccessToken accessToken = services.createAccessToken(expectedAuthentication); assertTrue(3600 >= accessToken.getExpiresIn()); }
From source file:org.apigw.authserver.svc.impl.TokenServicesImplTest.java
@Test @DirtiesContext//from w w w. j a v a 2 s. c o m public void testRoleSpecificTokenExpiry() throws Exception { services.setAccessTokenValiditySeconds(100 * 24 * 3600); OAuth2Authentication expectedAuthentication = new OAuth2Authentication( createAuthorizationRequest(CLIENT, Collections.singleton(READ_SCOPE)), new TestAuthentication(false)); OAuth2AccessToken accessToken = services.createAccessToken(expectedAuthentication); assertTrue(30 * 24 * 3600 >= accessToken.getExpiresIn()); }
From source file:org.apigw.authserver.svc.impl.TokenServicesImplTest.java
@Test @DirtiesContext//from www . jav a 2 s . c o m public void testUnlimitedTokenExpiry() throws Exception { services.setAccessTokenValiditySeconds(0); OAuth2Authentication expectedAuthentication = new OAuth2Authentication( createAuthorizationRequest(CLIENT, Collections.singleton(READ_SCOPE)), new TestAuthentication(false)); OAuth2AccessToken accessToken = services.createAccessToken(expectedAuthentication); assertEquals("[" + READ_SCOPE + "]", accessToken.getScope().toString()); assertEquals(0, accessToken.getExpiresIn()); assertEquals(null, accessToken.getExpiration()); }
From source file:it.smartcommunitylab.aac.controller.TokenIntrospectionController.java
@ApiOperation(value = "Get token metadata") @RequestMapping(method = RequestMethod.POST, value = "/token_introspection") public ResponseEntity<AACTokenIntrospection> getTokenInfo(@RequestParam String token) { AACTokenIntrospection result = new AACTokenIntrospection(); try {//ww w.j a v a2 s . c om OAuth2Authentication auth = resourceServerTokenServices.loadAuthentication(token); OAuth2AccessToken storedToken = tokenStore.getAccessToken(auth); String clientId = auth.getOAuth2Request().getClientId(); String userName = null; String userId = null; boolean applicationToken = false; if (auth.getPrincipal() instanceof User) { User principal = (User) auth.getPrincipal(); userId = principal.getUsername(); } else { ClientDetailsEntity client = clientDetailsRepository.findByClientId(clientId); applicationToken = true; userId = "" + client.getDeveloperId(); } userName = userManager.getUserInternalName(Long.parseLong(userId)); String localName = userName.substring(0, userName.lastIndexOf('@')); String tenant = userName.substring(userName.lastIndexOf('@') + 1); result.setUsername(localName); result.setClient_id(clientId); result.setScope(StringUtils.collectionToDelimitedString(auth.getOAuth2Request().getScope(), " ")); result.setExp((int) (storedToken.getExpiration().getTime() / 1000)); result.setIat(result.getExp() - storedToken.getExpiresIn()); result.setIss(issuer); result.setNbf(result.getIat()); result.setSub(userId); result.setAud(clientId); // jti is not supported in this form // only bearer tokens supported result.setToken_type(OAuth2AccessToken.BEARER_TYPE); result.setActive(true); result.setAac_user_id(userId); result.setAac_grantType(auth.getOAuth2Request().getGrantType()); result.setAac_applicationToken(applicationToken); result.setAac_am_tenant(tenant); } catch (Exception e) { logger.error("Error getting info for token: " + e.getMessage()); result = new AACTokenIntrospection(); result.setActive(false); } return ResponseEntity.ok(result); }
From source file:org.apigw.authserver.svc.impl.TokenServicesImplTest.java
@Test @DirtiesContext/*from www . ja va 2s.com*/ public void testBuildAuthorizationGrantExpiresCitizenIs12Today() { long validitySeconds = 60 * 60 * 12; DateTime dateOfBirth = now().minusYears(12); String residentIdentificationNumber = yyyyMMddFormatter.print(dateOfBirth) + "-9876"; services.setAccessTokenValiditySeconds(validitySeconds); OAuth2Authentication authentication = new OAuth2Authentication( createAuthorizationRequest(CLIENT, Collections.singleton(READ_SCOPE)), new TestAuthentication(false, residentIdentificationNumber)); OAuth2AccessToken accessToken = services.createAccessToken(authentication); Date expirationDate = accessToken.getExpiration(); // 12 hours from now DateTime expectedDate = now().plus(validitySeconds * 1000L); // check the dates are within one second of each other - assumption is that the unit test runs in less than one second assertTrue("expirationDate:" + expirationDate + " != expectedDate:" + expectedDate, Math.abs(expirationDate.getTime() - expectedDate.getMillis()) < 1000); assertTrue("expires too soon:" + accessToken.getExpiresIn() + " - validitySeconds:" + validitySeconds, accessToken.getExpiresIn() <= validitySeconds); assertTrue("expires too late:" + accessToken.getExpiresIn() + " - validitySeconds:" + validitySeconds, accessToken.getExpiresIn() >= validitySeconds - 1); }
From source file:org.apigw.authserver.svc.impl.TokenServicesImplTest.java
@Test @DirtiesContext//from ww w . j av a2 s . c om public void testBuildAuthorizationGrantExpiresCitizenIs18Today() { long validitySeconds = 60 * 60 * 12; // 12 hours DateTime dateOfBirth = now().minusYears(18); String residentIdentificationNumber = yyyyMMddFormatter.print(dateOfBirth) + "-9876"; services.setAccessTokenValiditySeconds(validitySeconds); OAuth2Authentication authentication = new OAuth2Authentication( createAuthorizationRequest(CLIENT, Collections.singleton(READ_SCOPE)), new TestAuthentication(false, residentIdentificationNumber)); OAuth2AccessToken accessToken = services.createAccessToken(authentication); Date expirationDate = accessToken.getExpiration(); // 12 hours from now DateTime expectedDate = now().plus(validitySeconds * 1000L); // check the dates are within one second of each other - assumption is that the unit test runs in less than one second assertTrue("expirationDate:" + expirationDate + " != expectedDate:" + expectedDate, Math.abs(expirationDate.getTime() - expectedDate.getMillis()) < 1000); assertTrue("expires too soon:" + accessToken.getExpiresIn() + " - validitySeconds:" + validitySeconds, accessToken.getExpiresIn() <= validitySeconds); assertTrue("expires too late:" + accessToken.getExpiresIn() + " - validitySeconds:" + validitySeconds, accessToken.getExpiresIn() >= validitySeconds - 1); }