use of io.gravitee.repository.management.model.Token in project gravitee-management-rest-api by gravitee-io.
the class TokenAuthenticationFilterTest method shouldRejectRequest_UnknownUser.
@Test
public void shouldRejectRequest_UnknownUser() throws Exception {
final String USER_ID = "SomeId";
final String TOKEN = "b4c6102e-6c95-464f-8610-2e6c95064f02";
final String BEARER = "Bearer " + TOKEN;
TokenAuthenticationFilter filter = new TokenAuthenticationFilter("JWT_SECRET_TOEKN_TEST", cookieGenerator, userService, tokenService, authoritiesProvider);
when(request.getHeader(HttpHeaders.AUTHORIZATION)).thenReturn(BEARER);
final Token token = mock(Token.class);
when(token.getReferenceId()).thenReturn(USER_ID);
when(tokenService.findByToken(TOKEN)).thenReturn(token);
when(userService.findById(USER_ID)).thenThrow(new UserNotFoundException(USER_ID));
filter.doFilter(request, response, filterChain);
verify(response).sendError(HttpStatusCode.UNAUTHORIZED_401);
verify(authoritiesProvider, never()).retrieveAuthorities(USER_ID);
}
use of io.gravitee.repository.management.model.Token in project gravitee-management-rest-api by gravitee-io.
the class TokenServiceImpl method create.
@Override
public TokenEntity create(NewTokenEntity newToken) {
try {
final String username = getAuthenticatedUsername();
// check if name already exists
final List<TokenEntity> tokens = findByUser(username);
final boolean nameAlreadyExists = tokens.stream().anyMatch(token -> newToken.getName().equalsIgnoreCase(token.getName()));
if (nameAlreadyExists) {
throw new TokenNameAlreadyExistsException(newToken.getName());
}
final String decodedToken = UUID.toString(UUID.random());
final Token token = convert(newToken, TokenReferenceType.USER, username, passwordEncoder.encode(decodedToken));
auditService.createEnvironmentAuditLog(Collections.singletonMap(TOKEN, token.getId()), TOKEN_CREATED, token.getCreatedAt(), null, token);
return convert(tokenRepository.create(token), decodedToken);
} catch (TechnicalException e) {
final String error = "An error occurs while trying to create a token " + newToken;
LOGGER.error(error, e);
throw new TechnicalManagementException(error, e);
}
}
use of io.gravitee.repository.management.model.Token in project gravitee-management-rest-api by gravitee-io.
the class TokenServiceTest method shouldFindByUser.
@Test
public void shouldFindByUser() throws TechnicalException {
final Token token2 = new Token();
token2.setId("2");
when(tokenRepository.findByReference(eq(USER.name()), eq(USER_ID))).thenReturn(asList(token, token2));
final List<TokenEntity> tokens = tokenService.findByUser(USER_ID);
assertEquals(TOKEN_ID, tokens.get(0).getId());
assertEquals("name", tokens.get(0).getName());
assertNull("Token cannot be read after creation", tokens.get(0).getToken());
assertEquals(new Date(1486771200000L), tokens.get(0).getCreatedAt());
assertEquals(new Date(1486772200000L), tokens.get(0).getExpiresAt());
assertEquals(new Date(1486773200000L), tokens.get(0).getLastUseAt());
assertEquals("2", tokens.get(1).getId());
}
use of io.gravitee.repository.management.model.Token in project gravitee-management-rest-api by gravitee-io.
the class TokenServiceTest method shouldFindByToken.
@Test
public void shouldFindByToken() throws TechnicalException {
when(tokenRepository.findAll()).thenReturn(newHashSet(token));
when(tokenRepository.update(token)).thenReturn(token);
final Token t = tokenService.findByToken("token");
assertEquals(TOKEN_ID, t.getId());
assertEquals("name", t.getName());
assertEquals("token", t.getToken());
assertEquals(new Date(1486771200000L), t.getCreatedAt());
assertEquals(new Date(1486772200000L), t.getExpiresAt());
assertEquals(new Date(1486773200000L), t.getLastUseAt());
}
Aggregations