Search in sources :

Example 1 with Domain

use of io.gravitee.am.model.Domain 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 2 with Domain

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

the class RxWebTestBase method setUp.

@Override
public void setUp() throws Exception {
    super.setUp();
    // Set security domain handler
    router = router();
    server = vertx.createHttpServer(getHttpServerOptions());
    client = vertx.createHttpClient(getHttpClientOptions());
    CountDownLatch latch = new CountDownLatch(1);
    server.requestHandler(router).listen(onSuccess(res -> latch.countDown()));
    awaitLatch(latch);
}
Also used : HttpURLConnection(java.net.HttpURLConnection) HttpServer(io.vertx.reactivex.core.http.HttpServer) Arrays(java.util.Arrays) Router(io.vertx.reactivex.ext.web.Router) URL(java.net.URL) Set(java.util.Set) Domain(io.gravitee.am.model.Domain) IOException(java.io.IOException) InputStreamReader(java.io.InputStreamReader) ServerSocket(java.net.ServerSocket) HashSet(java.util.HashSet) Consumer(java.util.function.Consumer) HttpClientRequest(io.vertx.reactivex.core.http.HttpClientRequest) CountDownLatch(java.util.concurrent.CountDownLatch) HttpMethod(io.vertx.core.http.HttpMethod) HttpServerOptions(io.vertx.core.http.HttpServerOptions) HttpClient(io.vertx.reactivex.core.http.HttpClient) HttpClientOptions(io.vertx.core.http.HttpClientOptions) BufferedReader(java.io.BufferedReader) HttpClientResponse(io.vertx.reactivex.core.http.HttpClientResponse) Buffer(io.vertx.reactivex.core.buffer.Buffer) CountDownLatch(java.util.concurrent.CountDownLatch)

Example 3 with Domain

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

the class MFAChallengeAlternativesEndpointTest method setUp.

@Override
public void setUp() throws Exception {
    super.setUp();
    ClientRequestParseHandler clientRequestParseHandler = new ClientRequestParseHandler(clientSyncService);
    clientRequestParseHandler.setRequired(true);
    domain = new Domain();
    domain.setId(UUID.randomUUID().toString());
    domain.setPath("/");
    when(clientSyncService.findByClientId(anyString())).thenReturn(Maybe.just(new Client()));
    router.route(HttpMethod.GET, "/mfa/challenge/alternatives").handler(clientRequestParseHandler).failureHandler(new ErrorHandler());
}
Also used : ErrorHandler(io.gravitee.am.gateway.handler.common.vertx.web.handler.ErrorHandler) Domain(io.gravitee.am.model.Domain) Client(io.gravitee.am.model.oidc.Client) ClientRequestParseHandler(io.gravitee.am.gateway.handler.root.resources.handler.client.ClientRequestParseHandler)

Example 4 with Domain

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

the class BotDetectionManagerTest method shouldGetTemplateVariables_Domain.

@Test
public void shouldGetTemplateVariables_Domain() {
    final Domain domain = new Domain();
    final AccountSettings accountSettings = new AccountSettings();
    accountSettings.setUseBotDetection(true);
    accountSettings.setBotDetectionPlugin(BOT_DETECTION_PLUGIN);
    domain.setAccountSettings(accountSettings);
    final Client client = new Client();
    Map<String, Object> variables = cut.getTemplateVariables(domain, client);
    assertNotNull(variables);
    assertFalse(variables.isEmpty());
    assertEquals(variables.get(TEMPLATE_KEY_BOT_DETECTION_ENABLED), true);
    assertEquals(variables.get(TEMPLATE_KEY_BOT_DETECTION_PLUGIN), BOT_DETECTION_PLUGIN_TYPE);
    assertTrue(variables.get(TEMPLATE_KEY_BOT_DETECTION_CONFIGURATION) instanceof Map);
    assertEquals(((Map<?, ?>) variables.get(TEMPLATE_KEY_BOT_DETECTION_CONFIGURATION)).size(), 1);
    assertEquals(((Map<?, ?>) variables.get(TEMPLATE_KEY_BOT_DETECTION_CONFIGURATION)).get("key"), "value");
}
Also used : AccountSettings(io.gravitee.am.model.account.AccountSettings) Domain(io.gravitee.am.model.Domain) Client(io.gravitee.am.model.oidc.Client) Map(java.util.Map) Test(org.junit.Test)

Example 5 with Domain

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

the class BotDetectionManagerTest method shouldGetTemplateVariables_App.

@Test
public void shouldGetTemplateVariables_App() {
    final Domain domain = new Domain();
    final AccountSettings domainAccountSettings = new AccountSettings();
    domainAccountSettings.setUseBotDetection(false);
    domain.setAccountSettings(domainAccountSettings);
    final Client client = new Client();
    final AccountSettings appAccountSettings = new AccountSettings();
    appAccountSettings.setInherited(false);
    appAccountSettings.setUseBotDetection(true);
    appAccountSettings.setBotDetectionPlugin(BOT_DETECTION_PLUGIN);
    client.setAccountSettings(appAccountSettings);
    Map<String, Object> variables = cut.getTemplateVariables(domain, client);
    assertNotNull(variables);
    assertFalse(variables.isEmpty());
    assertEquals(variables.get(TEMPLATE_KEY_BOT_DETECTION_ENABLED), true);
    assertEquals(variables.get(TEMPLATE_KEY_BOT_DETECTION_PLUGIN), BOT_DETECTION_PLUGIN_TYPE);
    assertTrue(variables.get(TEMPLATE_KEY_BOT_DETECTION_CONFIGURATION) instanceof Map);
    assertEquals(((Map<?, ?>) variables.get(TEMPLATE_KEY_BOT_DETECTION_CONFIGURATION)).size(), 1);
    assertEquals(((Map<?, ?>) variables.get(TEMPLATE_KEY_BOT_DETECTION_CONFIGURATION)).get("key"), "value");
}
Also used : AccountSettings(io.gravitee.am.model.account.AccountSettings) Domain(io.gravitee.am.model.Domain) Client(io.gravitee.am.model.oidc.Client) Map(java.util.Map) Test(org.junit.Test)

Aggregations

Domain (io.gravitee.am.model.Domain)197 Test (org.junit.Test)153 Response (javax.ws.rs.core.Response)83 JerseySpringTest (io.gravitee.am.management.handlers.management.api.JerseySpringTest)78 User (io.gravitee.am.model.User)28 Client (io.gravitee.am.model.oidc.Client)20 Single (io.reactivex.Single)19 Logger (org.slf4j.Logger)16 LoggerFactory (org.slf4j.LoggerFactory)16 Autowired (org.springframework.beans.factory.annotation.Autowired)15 Maybe (io.reactivex.Maybe)14 Group (io.gravitee.am.model.Group)13 Page (io.gravitee.am.model.common.Page)13 ArrayList (java.util.ArrayList)13 List (java.util.List)12 ReferenceType (io.gravitee.am.model.ReferenceType)11 Collectors (java.util.stream.Collectors)11 Environment (org.springframework.core.env.Environment)11 Role (io.gravitee.am.model.Role)10 Payload (io.gravitee.am.model.common.event.Payload)10