Search in sources :

Example 21 with Client

use of com.hw.helper.Client in project mt-auth by publicdevop2019.

the class ClientIdempotentTest method create_client_then_update_w_same_changeId_two_times_concurrent.

@Test
public void create_client_then_update_w_same_changeId_two_times_concurrent() {
    ResponseEntity<DefaultOAuth2AccessToken> tokenResponse = UserUtility.login(AppConstant.ACCOUNT_USERNAME_ADMIN, AppConstant.ACCOUNT_PASSWORD_ADMIN);
    String s = UUID.randomUUID().toString();
    Client oldClient = ClientUtility.getClientAsResource(AppConstant.CLIENT_ID_RESOURCE_ID);
    ResponseEntity<String> client1 = ClientUtility.createClient(oldClient, s);
    Assert.assertEquals(HttpStatus.OK, client1.getStatusCode());
    oldClient.setAccessTokenValiditySeconds(120);
    HttpHeaders headers = new HttpHeaders();
    String bearer = tokenResponse.getBody().getValue();
    headers.setContentType(MediaType.APPLICATION_JSON);
    headers.setBearerAuth(bearer);
    String s2 = UUID.randomUUID().toString();
    headers.set("changeId", s2);
    headers.set("X-XSRF-TOKEN", "123");
    headers.add(HttpHeaders.COOKIE, "XSRF-TOKEN=123");
    oldClient.setVersion(0);
    HttpEntity<Client> request = new HttpEntity<>(oldClient, headers);
    AtomicReference<Integer> success = new AtomicReference<>(0);
    AtomicReference<Integer> failed = new AtomicReference<>(0);
    String url = UrlUtility.getAccessUrl(CLIENTS + "/" + client1.getHeaders().getLocation().toString());
    Runnable runnable2 = () -> {
        TestContext.init();
        ResponseEntity<String> exchange = TestContext.getRestTemplate().exchange(url, HttpMethod.PUT, request, String.class);
        if (exchange.getStatusCode().is2xxSuccessful()) {
            success.set(success.get() + 1);
        }
        if (exchange.getStatusCode().is4xxClientError()) {
            failed.set(failed.get() + 1);
        }
    };
    ArrayList<Runnable> runnables = new ArrayList<>();
    runnables.add(runnable2);
    runnables.add(runnable2);
    try {
        assertConcurrent("", runnables, 30000);
        Assert.assertEquals(1, (int) success.get());
        Assert.assertEquals(1, (int) failed.get());
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) HttpEntity(org.springframework.http.HttpEntity) ArrayList(java.util.ArrayList) AtomicReference(java.util.concurrent.atomic.AtomicReference) DefaultOAuth2AccessToken(org.springframework.security.oauth2.common.DefaultOAuth2AccessToken) ResponseEntity(org.springframework.http.ResponseEntity) Client(com.hw.helper.Client) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 22 with Client

use of com.hw.helper.Client in project mt-auth by publicdevop2019.

the class ClientIdempotentTest method create_client_then_delete_w_same_changeId_two_times_concurrent.

@Test
public void create_client_then_delete_w_same_changeId_two_times_concurrent() {
    ResponseEntity<DefaultOAuth2AccessToken> tokenResponse = UserUtility.login(AppConstant.ACCOUNT_USERNAME_ADMIN, AppConstant.ACCOUNT_PASSWORD_ADMIN);
    String bearer = tokenResponse.getBody().getValue();
    String s = UUID.randomUUID().toString();
    Client oldClient = ClientUtility.getClientAsResource(AppConstant.CLIENT_ID_RESOURCE_ID);
    ResponseEntity<String> client1 = ClientUtility.createClient(oldClient, s);
    Assert.assertEquals(HttpStatus.OK, client1.getStatusCode());
    oldClient.setAccessTokenValiditySeconds(120);
    String url = UrlUtility.getAccessUrl(CLIENTS + "/" + client1.getHeaders().getLocation().toString());
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    headers.setBearerAuth(bearer);
    String s2 = UUID.randomUUID().toString();
    headers.set("changeId", s2);
    headers.set("X-XSRF-TOKEN", "123");
    headers.add(HttpHeaders.COOKIE, "XSRF-TOKEN=123");
    HttpEntity<Client> request = new HttpEntity<>(oldClient, headers);
    AtomicReference<Integer> success = new AtomicReference<>(0);
    AtomicReference<Integer> failed = new AtomicReference<>(0);
    Runnable runnable2 = () -> {
        TestContext.init();
        ResponseEntity<String> exchange = TestContext.getRestTemplate().exchange(url, HttpMethod.DELETE, request, String.class);
        if (exchange.getStatusCode().is2xxSuccessful()) {
            success.set(success.get() + 1);
        }
        if (exchange.getStatusCode().is4xxClientError()) {
            failed.set(failed.get() + 1);
        }
    };
    ArrayList<Runnable> runnables = new ArrayList<>();
    runnables.add(runnable2);
    runnables.add(runnable2);
    try {
        assertConcurrent("", runnables, 30000);
        Assert.assertEquals(1, (int) success.get());
        Assert.assertEquals(1, (int) failed.get());
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) HttpEntity(org.springframework.http.HttpEntity) ArrayList(java.util.ArrayList) AtomicReference(java.util.concurrent.atomic.AtomicReference) DefaultOAuth2AccessToken(org.springframework.security.oauth2.common.DefaultOAuth2AccessToken) ResponseEntity(org.springframework.http.ResponseEntity) Client(com.hw.helper.Client) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 23 with Client

use of com.hw.helper.Client in project mt-auth by publicdevop2019.

the class ClientTest method create_non_resource_client_with_valid_resource_ids_then_able_to_use_this_client_to_login.

@Test
public void create_non_resource_client_with_valid_resource_ids_then_able_to_use_this_client_to_login() {
    Client client = ClientUtility.getClientAsNonResource(CLIENT_ID_RESOURCE_ID);
    ResponseEntity<String> exchange = ClientUtility.createClient(client);
    Assert.assertEquals(HttpStatus.OK, exchange.getStatusCode());
    Assert.assertNotNull(exchange.getHeaders().getLocation());
    ResponseEntity<DefaultOAuth2AccessToken> tokenResponse1 = OAuth2Utility.getOAuth2PasswordToken(exchange.getHeaders().getLocation().toString(), client.getClientSecret(), ACCOUNT_USERNAME_ADMIN, ACCOUNT_PASSWORD_ADMIN);
    Assert.assertEquals(HttpStatus.OK, tokenResponse1.getStatusCode());
    Assert.assertNotNull(tokenResponse1.getBody().getValue());
}
Also used : Client(com.hw.helper.Client) DefaultOAuth2AccessToken(org.springframework.security.oauth2.common.DefaultOAuth2AccessToken) Test(org.junit.Test)

Example 24 with Client

use of com.hw.helper.Client in project mt-auth by publicdevop2019.

the class ClientTest method create_client_then_update_it_secret.

@Test
public void create_client_then_update_it_secret() {
    ResponseEntity<DefaultOAuth2AccessToken> tokenResponse = UserUtility.login(ACCOUNT_USERNAME_ADMIN, ACCOUNT_PASSWORD_ADMIN);
    String bearer = tokenResponse.getBody().getValue();
    Client oldClient = ClientUtility.getClientAsNonResource(CLIENT_ID_RESOURCE_ID);
    ResponseEntity<String> client1 = ClientUtility.createClient(oldClient);
    String url = UrlUtility.getAccessUrl(CLIENTS + "/" + client1.getHeaders().getLocation().toString());
    Client newClient = ClientUtility.getClientAsNonResource(CLIENT_ID_RESOURCE_ID);
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    headers.setBearerAuth(bearer);
    newClient.setVersion(0);
    HttpEntity<Client> request = new HttpEntity<>(newClient, headers);
    ResponseEntity<String> exchange = TestContext.getRestTemplate().exchange(url, HttpMethod.PUT, request, String.class);
    Assert.assertEquals(HttpStatus.OK, exchange.getStatusCode());
    ResponseEntity<DefaultOAuth2AccessToken> tokenResponse1 = OAuth2Utility.getOAuth2PasswordToken(client1.getHeaders().getLocation().toString(), newClient.getClientSecret(), ACCOUNT_USERNAME_ADMIN, ACCOUNT_PASSWORD_ADMIN);
    Assert.assertEquals(HttpStatus.OK, tokenResponse1.getStatusCode());
    Assert.assertNotNull(tokenResponse1.getBody().getValue());
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) HttpEntity(org.springframework.http.HttpEntity) Client(com.hw.helper.Client) DefaultOAuth2AccessToken(org.springframework.security.oauth2.common.DefaultOAuth2AccessToken) Test(org.junit.Test)

Example 25 with Client

use of com.hw.helper.Client in project mt-auth by publicdevop2019.

the class ClientTest method create_client_which_is_resource_itself_with_valid_resource_ids_then_able_to_use_this_client_to_login.

@Test
public void create_client_which_is_resource_itself_with_valid_resource_ids_then_able_to_use_this_client_to_login() {
    Client client = ClientUtility.getClientAsResource(CLIENT_ID_RESOURCE_ID);
    ResponseEntity<String> exchange = ClientUtility.createClient(client);
    Assert.assertEquals(HttpStatus.OK, exchange.getStatusCode());
    Assert.assertNotNull(exchange.getHeaders().getLocation());
    ResponseEntity<DefaultOAuth2AccessToken> tokenResponse1 = OAuth2Utility.getOAuth2PasswordToken(exchange.getHeaders().getLocation().toString(), client.getClientSecret(), ACCOUNT_USERNAME_ADMIN, ACCOUNT_PASSWORD_ADMIN);
    Assert.assertEquals(HttpStatus.OK, tokenResponse1.getStatusCode());
    Assert.assertNotNull(tokenResponse1.getBody().getValue());
}
Also used : Client(com.hw.helper.Client) DefaultOAuth2AccessToken(org.springframework.security.oauth2.common.DefaultOAuth2AccessToken) Test(org.junit.Test)

Aggregations

Client (com.hw.helper.Client)36 Test (org.junit.Test)30 DefaultOAuth2AccessToken (org.springframework.security.oauth2.common.DefaultOAuth2AccessToken)23 HttpEntity (org.springframework.http.HttpEntity)18 HttpHeaders (org.springframework.http.HttpHeaders)18 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)12 HashSet (java.util.HashSet)7 ArrayList (java.util.ArrayList)6 GrantTypeEnum (com.hw.helper.GrantTypeEnum)4 LinkedMultiValueMap (org.springframework.util.LinkedMultiValueMap)4 MultiValueMap (org.springframework.util.MultiValueMap)4 ClientType (com.hw.helper.ClientType)3 SumTotal (com.hw.helper.SumTotal)3 AtomicReference (java.util.concurrent.atomic.AtomicReference)3 ResponseEntity (org.springframework.http.ResponseEntity)3 IOException (java.io.IOException)1 Base64 (java.util.Base64)1 Map (java.util.Map)1 Ignore (org.junit.Ignore)1 OAuth2RefreshToken (org.springframework.security.oauth2.common.OAuth2RefreshToken)1