/** * The access token validity period in seconds * * @param clientAuth the current authorization request * @return the access token validity period in seconds */ protected int getAccessTokenValiditySeconds(OAuth2Request clientAuth) { if (clientDetailsService != null) { ClientDetails client = clientDetailsService.loadClientByClientId(clientAuth.getClientId()); Integer validity = client.getAccessTokenValiditySeconds(); if (validity != null) { return validity; } } return accessTokenValiditySeconds; }
@Override public Integer getValiditySeconds(String clientId) { ClientDetails clientDetails; try { clientDetails = clientServicesExtension.loadClientByClientId(clientId, IdentityZoneHolder.get().getId()); } catch(ClientRegistrationException e) { logger.info("Could not load details for client " + clientId, e); return null; } return clientDetails.getAccessTokenValiditySeconds(); }
@Test public void testAccessClientValidity_whenClientPresent_doesNotHaveATokenValiditySet() { when(clientDetails.getAccessTokenValiditySeconds()).thenReturn(null); assertThat(clientAccessTokenValidity.getValiditySeconds("clientId"), is(nullValue())); }
@Before public void setUp() { clientServicesExtension = mock(ClientServicesExtension.class); clientDetails = mock(ClientDetails.class); when(clientDetails.getAccessTokenValiditySeconds()).thenReturn(42); defaultZone = IdentityZone.getUaa(); PowerMockito.mockStatic(IdentityZoneHolder.class); when(IdentityZoneHolder.get()).thenReturn(defaultZone); when(clientServicesExtension.loadClientByClientId("clientId", "uaa")).thenReturn(clientDetails); clientAccessTokenValidity = new ClientAccessTokenValidity(clientServicesExtension); }
@Test public void testAccessClientValidity_whenClientPresentInADifferentZone() { IdentityZone notUaa = new IdentityZone(); notUaa.setId("not_uaa"); clientDetails = mock(ClientDetails.class); when(IdentityZoneHolder.get()).thenReturn(notUaa); when(clientDetails.getAccessTokenValiditySeconds()).thenReturn(24); when(clientServicesExtension.loadClientByClientId("clientId", "not_uaa")).thenReturn(clientDetails); Integer validitySeconds = clientAccessTokenValidity.getValiditySeconds("clientId"); assertThat(validitySeconds, is(24)); }
private Object[] getFieldsForUpdate(ClientDetails clientDetails, String zoneId) { Map<String, Object> additionalInformation = new HashMap(clientDetails.getAdditionalInformation()); Collection<String> requiredGroups = (Collection<String>) additionalInformation.remove(REQUIRED_USER_GROUPS); String json; try { json = JsonUtils.writeValueAsString(additionalInformation); } catch (Exception e) { logger.warn("Could not serialize additional information: " + clientDetails, e); throw new InvalidDataAccessResourceUsageException("Could not serialize additional information:"+clientDetails.getClientId(), e); } return new Object[] { collectionToString(clientDetails.getResourceIds()), collectionToString(clientDetails.getScope()), collectionToString(clientDetails.getAuthorizedGrantTypes()), collectionToString(clientDetails.getRegisteredRedirectUri()), collectionToString(clientDetails.getAuthorities()), clientDetails.getAccessTokenValiditySeconds(), clientDetails.getRefreshTokenValiditySeconds(), json, getAutoApproveScopes(clientDetails), new Timestamp(System.currentTimeMillis()), collectionToString(requiredGroups), clientDetails.getClientId(), zoneId }; }
assertEquals(validity, created.getAccessTokenValiditySeconds()); validity = (Integer) map.get("refresh-token-validity"); assertEquals(validity, created.getRefreshTokenValiditySeconds());
details.setAccessTokenValiditySeconds(existing.getAccessTokenValiditySeconds());
@Test public void testUpdateClients() throws Exception { BaseClientDetails[] clients = doCreateClients(); headers = getAuthenticatedHeaders(getClientCredentialsAccessToken("clients.admin,clients.read,clients.write,clients.secret")); headers.add("Accept", "application/json"); for (int i = 0; i < clients.length; i++) { clients[i].setAuthorities(AuthorityUtils.commaSeparatedStringToAuthorityList("some.crap")); clients[i].setAccessTokenValiditySeconds(60); clients[i].setRefreshTokenValiditySeconds(120); } ResponseEntity<BaseClientDetails[]> result = serverRunning.getRestTemplate().exchange( serverRunning.getUrl("/oauth/clients/tx"), HttpMethod.PUT, new HttpEntity<BaseClientDetails[]>(clients, headers), BaseClientDetails[].class); assertEquals(HttpStatus.OK, result.getStatusCode()); validateClients(clients, result.getBody()); for (int i = 0; i < clients.length; i++) { ClientDetails client = getClient(clients[i].getClientId()); assertNotNull(client); assertEquals((Integer) 120, client.getRefreshTokenValiditySeconds()); assertEquals((Integer) 60, client.getAccessTokenValiditySeconds()); } }
.next().getAuthority()); assertEquals(new Integer(100), clientDetails.getAccessTokenValiditySeconds()); assertEquals(new Integer(200), clientDetails.getRefreshTokenValiditySeconds());
public BaseClientDetails(ClientDetails prototype) { this(); setAccessTokenValiditySeconds(prototype.getAccessTokenValiditySeconds()); setRefreshTokenValiditySeconds(prototype .getRefreshTokenValiditySeconds()); setAuthorities(prototype.getAuthorities()); setAuthorizedGrantTypes(prototype.getAuthorizedGrantTypes()); setClientId(prototype.getClientId()); setClientSecret(prototype.getClientSecret()); setRegisteredRedirectUri(prototype.getRegisteredRedirectUri()); setScope(prototype.getScope()); setResourceIds(prototype.getResourceIds()); }
@Test public void testLoadingClientIdWithNoDetails() { int rowsInserted = jdbcTemplate.update(INSERT_SQL, "clientIdWithNoDetails", null, null, null, null, null, null, null, null, null, IdentityZoneHolder.get().getId(), new Timestamp(System.currentTimeMillis()), dbRequestedUserGroups ); assertEquals(1, rowsInserted); ClientDetails clientDetails = service .loadClientByClientId("clientIdWithNoDetails"); assertEquals("clientIdWithNoDetails", clientDetails.getClientId()); assertFalse(clientDetails.isSecretRequired()); assertNull(clientDetails.getClientSecret()); assertFalse(clientDetails.isScoped()); assertEquals(0, clientDetails.getScope().size()); assertEquals(2, clientDetails.getAuthorizedGrantTypes().size()); assertNull(clientDetails.getRegisteredRedirectUri()); assertEquals(0, clientDetails.getAuthorities().size()); assertEquals(null, clientDetails.getAccessTokenValiditySeconds()); assertEquals(null, clientDetails.getAccessTokenValiditySeconds()); }
private Object[] getFieldsForUpdate(ClientDetails clientDetails) { String json = null; try { json = mapper.write(clientDetails.getAdditionalInformation()); } catch (Exception e) { logger.warn("Could not serialize additional information: " + clientDetails, e); } return new Object[] { clientDetails.getResourceIds() != null ? StringUtils.collectionToCommaDelimitedString(clientDetails .getResourceIds()) : null, clientDetails.getScope() != null ? StringUtils.collectionToCommaDelimitedString(clientDetails .getScope()) : null, clientDetails.getAuthorizedGrantTypes() != null ? StringUtils .collectionToCommaDelimitedString(clientDetails.getAuthorizedGrantTypes()) : null, clientDetails.getRegisteredRedirectUri() != null ? StringUtils .collectionToCommaDelimitedString(clientDetails.getRegisteredRedirectUri()) : null, clientDetails.getAuthorities() != null ? StringUtils.collectionToCommaDelimitedString(clientDetails .getAuthorities()) : null, clientDetails.getAccessTokenValiditySeconds(), clientDetails.getRefreshTokenValiditySeconds(), json, getAutoApproveScopes(clientDetails), clientDetails.getClientId() }; }
assertEquals("myAuthority2", authorities.next().getAuthority()); assertEquals(new Integer(100), clientDetails.getAccessTokenValiditySeconds()); assertEquals(new Integer(200), clientDetails.getRefreshTokenValiditySeconds());
@Test void testPutClientModifyAccessTokenValidity() throws Exception { ClientDetails client = createClient(adminToken, "testClientForModifyAccessTokenValidity", SECRET, Collections.singleton("client_credentials")); BaseClientDetails modified = new BaseClientDetails(client); modified.setAccessTokenValiditySeconds(73); MockHttpServletRequestBuilder put = put("/oauth/clients/" + client.getClientId()) .header("Authorization", "Bearer " + adminToken) .accept(APPLICATION_JSON) .contentType(APPLICATION_JSON) .content(JsonUtils.writeValueAsString(modified)); mockMvc.perform(put).andExpect(status().isOk()).andReturn(); client = getClient(client.getClientId()); assertThat(client.getAccessTokenValiditySeconds(), is(73)); }
/** * The access token validity period in seconds * * @param clientAuth the current authorization request * @return the access token validity period in seconds */ protected int getAccessTokenValiditySeconds(OAuth2Request clientAuth) { if (clientDetailsService != null) { ClientDetails client = clientDetailsService.loadClientByClientId(clientAuth.getClientId()); Integer validity = client.getAccessTokenValiditySeconds(); if (validity != null) { return validity; } } return accessTokenValiditySeconds; }
/** * The access token validity period in seconds * * @param clientAuth the current authorization request * @return the access token validity period in seconds */ protected int getAccessTokenValiditySeconds(OAuth2Request clientAuth) { if (clientDetailsService != null) { ClientDetails client = clientDetailsService.loadClientByClientId(clientAuth.getClientId()); Integer validity = client.getAccessTokenValiditySeconds(); if (validity != null) { return validity; } } return accessTokenValiditySeconds; }
/** * The access token validity period in seconds * * @param clientAuth the current authorization request * @return the access token validity period in seconds */ protected int getAccessTokenValiditySeconds(OAuth2Request clientAuth) { if (clientDetailsService != null) { ClientDetails client = clientDetailsService.loadClientByClientId(clientAuth.getClientId()); Integer validity = client.getAccessTokenValiditySeconds(); if (validity != null) { return validity; } } return accessTokenValiditySeconds; }
private Object[] getFieldsForUpdate(ClientDetails clientDetails) { String json = null; try { json = this.mapper.write(clientDetails.getAdditionalInformation()); } catch (Exception var4) { logger.warn("Could not serialize additional information: " + clientDetails, var4); } return new Object[]{clientDetails.getResourceIds() != null ? StringUtils.collectionToCommaDelimitedString(clientDetails.getResourceIds()) : null, clientDetails.getScope() != null ? StringUtils.collectionToCommaDelimitedString(clientDetails.getScope()) : null, clientDetails.getAuthorizedGrantTypes() != null ? StringUtils.collectionToCommaDelimitedString(clientDetails.getAuthorizedGrantTypes()) : null, clientDetails.getRegisteredRedirectUri() != null ? StringUtils.collectionToCommaDelimitedString(clientDetails.getRegisteredRedirectUri()) : null, clientDetails.getAuthorities() != null ? StringUtils.collectionToCommaDelimitedString(clientDetails.getAuthorities()) : null, clientDetails.getAccessTokenValiditySeconds(), clientDetails.getRefreshTokenValiditySeconds(), json, this.getAutoApproveScopes(clientDetails), clientDetails.getClientId()}; }
public BaseClientDetails(ClientDetails prototype) { this(); setAccessTokenValiditySeconds(prototype.getAccessTokenValiditySeconds()); setRefreshTokenValiditySeconds(prototype .getRefreshTokenValiditySeconds()); setAuthorities(prototype.getAuthorities()); setAuthorizedGrantTypes(prototype.getAuthorizedGrantTypes()); setClientId(prototype.getClientId()); setClientSecret(prototype.getClientSecret()); setRegisteredRedirectUri(prototype.getRegisteredRedirectUri()); setScope(prototype.getScope()); setResourceIds(prototype.getResourceIds()); }