Search in sources :

Example 1 with User

use of io.gravitee.am.model.User in project gravitee-access-management by gravitee-io.

the class UserAuthenticationServiceTest method shouldLoadPreAuthenticatedUser_subjectRequest_enhance_defer.

@Test
public void shouldLoadPreAuthenticatedUser_subjectRequest_enhance_defer() {
    final User existingUser = new User();
    existingUser.setId(UUID.randomUUID().toString());
    existingUser.setUsername("username");
    existingUser.setAccountNonLocked(true);
    var request = mock(Request.class);
    when(userService.findById(existingUser.getId())).thenReturn(Maybe.just(existingUser));
    when(identityProviderManager.get(any())).thenReturn(Maybe.just(new AuthenticationProvider() {

        @Override
        public Maybe<io.gravitee.am.identityprovider.api.User> loadUserByUsername(Authentication authentication) {
            return Maybe.empty();
        }

        @Override
        public Maybe<io.gravitee.am.identityprovider.api.User> loadUserByUsername(String username) {
            return Maybe.empty();
        }
    }));
    when(userService.enhance(existingUser)).thenReturn(Single.just(existingUser));
    TestObserver<User> testObserver = userAuthenticationService.loadPreAuthenticatedUser(existingUser.getId(), request).test();
    testObserver.awaitTerminalEvent();
    testObserver.assertComplete();
    testObserver.assertValue(user1 -> user1.equals(existingUser));
}
Also used : User(io.gravitee.am.model.User) Authentication(io.gravitee.am.identityprovider.api.Authentication) AuthenticationProvider(io.gravitee.am.identityprovider.api.AuthenticationProvider) Test(org.junit.Test)

Example 2 with User

use of io.gravitee.am.model.User in project gravitee-access-management by gravitee-io.

the class UserAuthenticationServiceTest method shouldConnect_unknownUser_withRoles.

@Test
public void shouldConnect_unknownUser_withRoles() {
    String domainId = "Domain";
    String username = "foo";
    String source = "SRC";
    String id = "id";
    io.gravitee.am.identityprovider.api.User user = mock(io.gravitee.am.identityprovider.api.User.class);
    when(user.getUsername()).thenReturn(username);
    when(user.getId()).thenReturn(id);
    when(user.getRoles()).thenReturn(Arrays.asList("idp-role", "idp2-role"));
    HashMap<String, Object> additionalInformation = new HashMap<>();
    additionalInformation.put("source", source);
    when(user.getAdditionalInformation()).thenReturn(additionalInformation);
    User createdUser = mock(User.class);
    when(createdUser.isEnabled()).thenReturn(true);
    when(createdUser.getRoles()).thenReturn(Arrays.asList("idp-role", "idp2-role"));
    when(domain.getId()).thenReturn(domainId);
    when(userService.findByDomainAndExternalIdAndSource(domainId, id, source)).thenReturn(Maybe.empty());
    when(userService.findByDomainAndUsernameAndSource(domainId, username, source)).thenReturn(Maybe.empty());
    when(userService.create(any())).thenReturn(Single.just(createdUser));
    when(userService.enhance(createdUser)).thenReturn(Single.just(createdUser));
    TestObserver<User> testObserver = userAuthenticationService.connect(user).test();
    testObserver.awaitTerminalEvent();
    testObserver.assertComplete();
    testObserver.assertNoErrors();
    testObserver.assertValue(user1 -> user1.getRoles().size() == 2);
}
Also used : User(io.gravitee.am.model.User) HashMap(java.util.HashMap) Test(org.junit.Test)

Example 3 with User

use of io.gravitee.am.model.User in project gravitee-access-management by gravitee-io.

the class UserAuthenticationServiceTest method shouldConnect_unknownUser.

@Test
public void shouldConnect_unknownUser() {
    String domainId = "Domain";
    String username = "foo";
    String source = "SRC";
    String id = "id";
    io.gravitee.am.identityprovider.api.User user = mock(io.gravitee.am.identityprovider.api.User.class);
    when(user.getUsername()).thenReturn(username);
    when(user.getId()).thenReturn(id);
    HashMap<String, Object> additionalInformation = new HashMap<>();
    additionalInformation.put("source", source);
    additionalInformation.put("op_id_token", "somevalue");
    when(user.getAdditionalInformation()).thenReturn(additionalInformation);
    User createdUser = mock(User.class);
    when(createdUser.isEnabled()).thenReturn(true);
    when(domain.getId()).thenReturn(domainId);
    when(userService.findByDomainAndExternalIdAndSource(domainId, id, source)).thenReturn(Maybe.empty());
    when(userService.findByDomainAndUsernameAndSource(domainId, username, source)).thenReturn(Maybe.empty());
    when(userService.create(any())).thenReturn(Single.just(createdUser));
    when(userService.enhance(createdUser)).thenReturn(Single.just(createdUser));
    TestObserver testObserver = userAuthenticationService.connect(user).test();
    testObserver.awaitTerminalEvent();
    testObserver.assertComplete();
    testObserver.assertNoErrors();
    verify(userService, times(1)).create(argThat(u -> u.getAdditionalInformation().containsKey("op_id_token")));
    verify(userService, never()).update(any());
}
Also used : ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) Arrays(java.util.Arrays) Mock(org.mockito.Mock) Authentication(io.gravitee.am.identityprovider.api.Authentication) Maybe(io.reactivex.Maybe) RunWith(org.junit.runner.RunWith) IdentityProviderManager(io.gravitee.am.gateway.handler.common.auth.idp.IdentityProviderManager) HashMap(java.util.HashMap) Single(io.reactivex.Single) UserAuthenticationService(io.gravitee.am.gateway.handler.common.auth.user.UserAuthenticationService) Request(io.gravitee.gateway.api.Request) User(io.gravitee.am.model.User) InjectMocks(org.mockito.InjectMocks) AccountDisabledException(io.gravitee.am.common.exception.authentication.AccountDisabledException) Domain(io.gravitee.am.model.Domain) TestObserver(io.reactivex.observers.TestObserver) Test(org.junit.Test) UUID(java.util.UUID) AuthenticationProvider(io.gravitee.am.identityprovider.api.AuthenticationProvider) UserNotFoundException(io.gravitee.am.service.exception.UserNotFoundException) Mockito(org.mockito.Mockito) UserService(io.gravitee.am.gateway.handler.common.user.UserService) AccountLockedException(io.gravitee.am.common.exception.authentication.AccountLockedException) MockitoJUnitRunner(org.mockito.junit.MockitoJUnitRunner) UserAuthenticationServiceImpl(io.gravitee.am.gateway.handler.common.auth.user.impl.UserAuthenticationServiceImpl) User(io.gravitee.am.model.User) HashMap(java.util.HashMap) TestObserver(io.reactivex.observers.TestObserver) Test(org.junit.Test)

Example 4 with User

use of io.gravitee.am.model.User in project gravitee-access-management by gravitee-io.

the class UserAuthenticationServiceTest method shouldNotLoadPreAuthenticatedUser_subjectRequest.

@Test
public void shouldNotLoadPreAuthenticatedUser_subjectRequest() {
    final User existingUser = new User();
    existingUser.setId(UUID.randomUUID().toString());
    existingUser.setUsername("username");
    existingUser.setAccountNonLocked(false);
    var request = mock(Request.class);
    when(userService.findById(existingUser.getId())).thenReturn(Maybe.just(existingUser));
    TestObserver<User> testObserver = userAuthenticationService.loadPreAuthenticatedUser(existingUser.getId(), request).test();
    testObserver.awaitTerminalEvent();
    testObserver.assertNotComplete();
    testObserver.assertFailure(AccountLockedException.class);
}
Also used : User(io.gravitee.am.model.User) Test(org.junit.Test)

Example 5 with User

use of io.gravitee.am.model.User in project gravitee-access-management by gravitee-io.

the class UserAuthenticationServiceTest method shouldConnect_knownUser.

@Test
public void shouldConnect_knownUser() {
    String domainId = "Domain";
    String source = "SRC";
    String id = "id";
    io.gravitee.am.identityprovider.api.User user = mock(io.gravitee.am.identityprovider.api.User.class);
    when(user.getId()).thenReturn(id);
    HashMap<String, Object> additionalInformation = new HashMap<>();
    additionalInformation.put("source", source);
    when(user.getAdditionalInformation()).thenReturn(additionalInformation);
    User updatedUser = mock(User.class);
    when(updatedUser.isEnabled()).thenReturn(true);
    when(domain.getId()).thenReturn(domainId);
    final User foundUser = mock(User.class);
    when(foundUser.isAccountNonLocked()).thenReturn(true);
    when(userService.findByDomainAndExternalIdAndSource(domainId, id, source)).thenReturn(Maybe.just(foundUser));
    when(userService.update(any())).thenReturn(Single.just(updatedUser));
    when(userService.enhance(updatedUser)).thenReturn(Single.just(updatedUser));
    TestObserver testObserver = userAuthenticationService.connect(user).test();
    testObserver.awaitTerminalEvent();
    testObserver.assertComplete();
    testObserver.assertNoErrors();
    verify(userService, never()).create(any());
    verify(userService, times(1)).update(any());
}
Also used : User(io.gravitee.am.model.User) HashMap(java.util.HashMap) TestObserver(io.reactivex.observers.TestObserver) Test(org.junit.Test)

Aggregations

User (io.gravitee.am.model.User)351 Test (org.junit.Test)274 Client (io.gravitee.am.model.oidc.Client)122 DefaultUser (io.gravitee.am.identityprovider.api.DefaultUser)57 Single (io.reactivex.Single)50 TestObserver (io.reactivex.observers.TestObserver)50 Maybe (io.reactivex.Maybe)47 NewUser (io.gravitee.am.service.model.NewUser)45 AbstractManagementTest (io.gravitee.am.repository.management.AbstractManagementTest)43 JWT (io.gravitee.am.common.jwt.JWT)38 Domain (io.gravitee.am.model.Domain)37 Page (io.gravitee.am.model.common.Page)36 UpdateUser (io.gravitee.am.service.model.UpdateUser)32 FilterCriteria (io.gravitee.am.repository.management.api.search.FilterCriteria)31 HashMap (java.util.HashMap)30 RunWith (org.junit.runner.RunWith)30 Mock (org.mockito.Mock)30 MockitoJUnitRunner (org.mockito.junit.MockitoJUnitRunner)28 EnrolledFactor (io.gravitee.am.model.factor.EnrolledFactor)27 Authentication (io.gravitee.am.identityprovider.api.Authentication)24