Search in sources :

Example 1 with Token

use of org.molgenis.data.security.auth.Token in project molgenis by molgenis.

the class DataServiceTokenServiceTest method findUserByToken.

@Test
public void findUserByToken() {
    User user = mock(User.class);
    when(user.getUsername()).thenReturn("admin");
    Token token = mock(Token.class);
    when(token.getToken()).thenReturn("token");
    when(token.getUser()).thenReturn(user);
    @SuppressWarnings("unchecked") Query<Token> q = mock(Query.class);
    when(q.eq(TOKEN_ATTR, "token")).thenReturn(q);
    when(q.findOne()).thenReturn(token);
    when(dataService.query(TOKEN, Token.class)).thenReturn(q);
    UserDetails userDetails = new org.springframework.security.core.userdetails.User("admin", "admin", singletonList(new SimpleGrantedAuthority("admin")));
    when(userDetailsService.loadUserByUsername("admin")).thenReturn(userDetails);
    assertEquals(tokenService.findUserByToken("token"), userDetails);
}
Also used : SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) User(org.molgenis.data.security.auth.User) UserDetails(org.springframework.security.core.userdetails.UserDetails) Token(org.molgenis.data.security.auth.Token) Test(org.testng.annotations.Test)

Example 2 with Token

use of org.molgenis.data.security.auth.Token in project molgenis by molgenis.

the class DataServiceTokenServiceTest method findUserByTokenExpired.

@Test(expectedExceptions = UnknownTokenException.class)
public void findUserByTokenExpired() {
    Token token = mock(Token.class);
    when(token.getToken()).thenReturn("token");
    when(token.isExpired()).thenReturn(true);
    @SuppressWarnings("unchecked") Query<Token> q = mock(Query.class);
    when(q.eq(TOKEN_ATTR, "token")).thenReturn(q);
    when(q.findOne()).thenReturn(token);
    when(dataService.query(TOKEN, Token.class)).thenReturn(q);
    tokenService.findUserByToken("token");
}
Also used : Token(org.molgenis.data.security.auth.Token) Test(org.testng.annotations.Test)

Example 3 with Token

use of org.molgenis.data.security.auth.Token in project molgenis by molgenis.

the class DataServiceTokenService method generateAndStoreToken.

/**
 * Generates a token and associates it with a user.
 * <p>
 * Token expires in 2 hours
 *
 * @param username    username
 * @param description token description
 * @return token
 */
@Override
@Transactional
@RunAsSystem
public String generateAndStoreToken(String username, String description) {
    User user = dataService.query(USER, User.class).eq(USERNAME, username).findOne();
    if (user == null) {
        throw new IllegalArgumentException(format("Unknown username [%s]", username));
    }
    String token = tokenGenerator.generateToken();
    Token molgenisToken = tokenFactory.create();
    molgenisToken.setUser(user);
    molgenisToken.setToken(token);
    molgenisToken.setDescription(description);
    molgenisToken.setExpirationDate(now().plus(2, HOURS));
    dataService.add(TOKEN, molgenisToken);
    return token;
}
Also used : User(org.molgenis.data.security.auth.User) Token(org.molgenis.data.security.auth.Token) RunAsSystem(org.molgenis.security.core.runas.RunAsSystem) Transactional(org.springframework.transaction.annotation.Transactional)

Example 4 with Token

use of org.molgenis.data.security.auth.Token in project molgenis by molgenis.

the class DataServiceTokenService method removeToken.

@Override
@Transactional
@RunAsSystem
public void removeToken(String token) {
    Token molgenisToken = getMolgenisToken(token);
    dataService.delete(TOKEN, molgenisToken);
}
Also used : Token(org.molgenis.data.security.auth.Token) RunAsSystem(org.molgenis.security.core.runas.RunAsSystem) Transactional(org.springframework.transaction.annotation.Transactional)

Example 5 with Token

use of org.molgenis.data.security.auth.Token in project molgenis by molgenis.

the class DataServiceTokenServiceTest method removeToken.

@Test
public void removeToken() {
    Token token = mock(Token.class);
    when(token.getToken()).thenReturn("token");
    @SuppressWarnings("unchecked") Query<Token> q = mock(Query.class);
    when(q.eq(TOKEN_ATTR, "token")).thenReturn(q);
    when(q.findOne()).thenReturn(token);
    when(dataService.query(TOKEN, Token.class)).thenReturn(q);
    tokenService.removeToken("token");
    verify(dataService).delete(TOKEN, token);
}
Also used : Token(org.molgenis.data.security.auth.Token) Test(org.testng.annotations.Test)

Aggregations

Token (org.molgenis.data.security.auth.Token)6 Test (org.testng.annotations.Test)4 User (org.molgenis.data.security.auth.User)3 RunAsSystem (org.molgenis.security.core.runas.RunAsSystem)2 Transactional (org.springframework.transaction.annotation.Transactional)2 SimpleGrantedAuthority (org.springframework.security.core.authority.SimpleGrantedAuthority)1 UserDetails (org.springframework.security.core.userdetails.UserDetails)1