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));
}
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);
}
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());
}
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);
}
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());
}
Aggregations