Search in sources :

Example 1 with RegisterSiteResponse

use of io.jans.ca.common.response.RegisterSiteResponse in project jans by JanssenProject.

the class CheckAccessTokenTest method test.

@Parameters({ "host", "redirectUrls", "userId", "userSecret", "opHost" })
@Test
public void test(String host, String redirectUrls, String userId, String userSecret, String opHost) {
    ClientInterface client = Tester.newClient(host);
    String nonce = CoreUtils.secureRandomString();
    String state = CoreUtils.secureRandomString();
    RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrls);
    GetTokensByCodeResponse2 response = GetTokensByCodeTest.tokenByCode(client, site, opHost, userId, userSecret, site.getClientId(), redirectUrls, nonce, state);
    final CheckAccessTokenParams params = new CheckAccessTokenParams();
    params.setAccessToken(response.getAccessToken());
    params.setIdToken(response.getIdToken());
    params.setRpId(site.getRpId());
    final CheckAccessTokenResponse checkR = client.checkAccessToken(Tester.getAuthorization(site), null, params);
    assertNotNull(checkR);
    assertTrue(checkR.isActive());
    assertNotNull(checkR.getExpiresAt());
    assertNotNull(checkR.getIssuedAt());
}
Also used : CheckAccessTokenResponse(io.jans.ca.common.response.CheckAccessTokenResponse) CheckAccessTokenParams(io.jans.ca.common.params.CheckAccessTokenParams) ClientInterface(io.jans.ca.client.ClientInterface) RegisterSiteResponse(io.jans.ca.common.response.RegisterSiteResponse) GetTokensByCodeResponse2(io.jans.ca.client.GetTokensByCodeResponse2) Parameters(org.testng.annotations.Parameters) Test(org.testng.annotations.Test)

Example 2 with RegisterSiteResponse

use of io.jans.ca.common.response.RegisterSiteResponse in project jans by JanssenProject.

the class DifferentAuthServerTest method getUserInfo_withDifferentAuthServer.

@Parameters({ "host", "opHost", "authServer", "redirectUrls", "clientId", "clientSecret", "userId", "userSecret" })
@Test
public void getUserInfo_withDifferentAuthServer(String host, String opHost, String authServer, String redirectUrls, String clientId, String clientSecret, String userId, String userSecret) {
    ClientInterface client = Tester.newClient(host);
    RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrls);
    RegisterSiteResponse authServerResp = RegisterSiteTest.registerSite(client, authServer, redirectUrls);
    final GetTokensByCodeResponse2 tokens = requestTokens(client, opHost, site, authServerResp, userId, userSecret, site.getClientId(), redirectUrls);
    GetUserInfoParams params = new GetUserInfoParams();
    params.setRpId(site.getRpId());
    params.setAccessToken(tokens.getAccessToken());
    params.setIdToken(tokens.getIdToken());
    final JsonNode resp = client.getUserInfo(Tester.getAuthorization(authServerResp), authServerResp.getRpId(), params);
    assertNotNull(resp);
    assertNotNull(resp.get("sub"));
}
Also used : GetUserInfoParams(io.jans.ca.common.params.GetUserInfoParams) JsonNode(com.fasterxml.jackson.databind.JsonNode) ClientInterface(io.jans.ca.client.ClientInterface) RegisterSiteResponse(io.jans.ca.common.response.RegisterSiteResponse) GetTokensByCodeResponse2(io.jans.ca.client.GetTokensByCodeResponse2) Parameters(org.testng.annotations.Parameters) Test(org.testng.annotations.Test)

Example 3 with RegisterSiteResponse

use of io.jans.ca.common.response.RegisterSiteResponse in project jans by JanssenProject.

the class RegisterSiteTest method registerSite.

public static RegisterSiteResponse registerSite(ClientInterface client, String opHost, String redirectUrls, String postLogoutRedirectUrls, String logoutUri, boolean syncClientFromOp) {
    final RegisterSiteParams params = new RegisterSiteParams();
    params.setOpHost(opHost);
    params.setPostLogoutRedirectUris(Lists.newArrayList(postLogoutRedirectUrls.split(" ")));
    params.setClientFrontchannelLogoutUri(logoutUri);
    params.setRedirectUris(Lists.newArrayList(redirectUrls.split(" ")));
    params.setScope(Lists.newArrayList("openid", "uma_protection", "profile", "jans_client_api"));
    params.setResponseTypes(Lists.newArrayList("code", "id_token", "token"));
    params.setGrantTypes(Lists.newArrayList(GrantType.AUTHORIZATION_CODE.getValue(), GrantType.OXAUTH_UMA_TICKET.getValue(), GrantType.CLIENT_CREDENTIALS.getValue()));
    params.setSyncClientFromOp(syncClientFromOp);
    params.setSyncClientPeriodInSeconds(0);
    final RegisterSiteResponse resp = client.registerSite(params);
    assertNotNull(resp);
    assertTrue(!Strings.isNullOrEmpty(resp.getRpId()));
    return resp;
}
Also used : RegisterSiteParams(io.jans.ca.common.params.RegisterSiteParams) RegisterSiteResponse(io.jans.ca.common.response.RegisterSiteResponse)

Example 4 with RegisterSiteResponse

use of io.jans.ca.common.response.RegisterSiteResponse in project jans by JanssenProject.

the class RegisterSiteTest method register_withOpConfigurationEndpoint.

@Parameters({ "host", "opConfigurationEndpoint", "redirectUrls", "logoutUrl", "postLogoutRedirectUrls" })
@Test
public static void register_withOpConfigurationEndpoint(String host, String opConfigurationEndpoint, String redirectUrls, String logoutUrl, String postLogoutRedirectUrls) {
    // more specific site registration
    final RegisterSiteParams params = new RegisterSiteParams();
    params.setOpConfigurationEndpoint(opConfigurationEndpoint);
    params.setPostLogoutRedirectUris(Lists.newArrayList(postLogoutRedirectUrls.split(" ")));
    params.setClientFrontchannelLogoutUri(logoutUrl);
    params.setRedirectUris(Lists.newArrayList(redirectUrls.split(" ")));
    params.setAcrValues(new ArrayList<String>());
    params.setGrantTypes(Lists.newArrayList(GrantType.AUTHORIZATION_CODE.getValue(), GrantType.OXAUTH_UMA_TICKET.getValue(), GrantType.CLIENT_CREDENTIALS.getValue()));
    params.setScope(Lists.newArrayList("openid", "uma_protection", "profile"));
    params.setResponseTypes(Lists.newArrayList("code", "id_token", "token"));
    params.setClientName("rp-client-extension-up" + System.currentTimeMillis());
    params.setClientTokenEndpointAuthMethod("client_secret_basic");
    params.setClientTokenEndpointAuthSigningAlg("HS256");
    params.setClaimsRedirectUri(Lists.newArrayList("https://client.example.org"));
    params.setAccessTokenSigningAlg("HS256");
    params.setRptAsJwt(true);
    params.setAccessTokenAsJwt(true);
    params.setFrontChannelLogoutSessionRequired(true);
    params.setRunIntrospectionScriptBeforeAccessTokenAsJwtCreationAndIncludeClaims(true);
    params.setRequireAuthTime(true);
    params.setLogoUri("https://client.example.org/authorization/page3");
    params.setClientUri("https://client.example.org/authorization/page3");
    params.setPolicyUri("https://client.example.org/authorization/page3");
    params.setTosUri("https://client.example.org/authorization/page3");
    params.setJwks("{\"key1\": \"value1\", \"key2\": \"value2\"}");
    params.setIdTokenBindingCnf("4NRB1-0XZABZI9E6-5SM3R");
    params.setTlsClientAuthSubjectDn("www.test-updated.com");
    params.setSubjectType("pairwise");
    params.setIdTokenSignedResponseAlg("HS256");
    params.setIdTokenEncryptedResponseAlg("RSA1_5");
    params.setIdTokenEncryptedResponseEnc("A128CBC+HS256");
    params.setUserInfoSignedResponseAlg("HS256");
    params.setUserInfoEncryptedResponseAlg("RSA1_5");
    params.setUserInfoEncryptedResponseEnc("A128CBC+HS256");
    params.setRequestObjectSigningAlg("HS256");
    params.setRequestObjectEncryptionAlg("RSA1_5");
    params.setRequestObjectEncryptionEnc("A128CBC+HS256");
    params.setDefaultMaxAge(100000000);
    params.setInitiateLoginUri("https://client.example.org/authorization/page2");
    params.setAuthorizedOrigins(Lists.newArrayList("beem://www.test.com", "fb://app.local.url"));
    params.setAccessTokenLifetime(100000000);
    params.setSoftwareId("4NRB1-0XZABZI9E6-5SM3R");
    params.setSoftwareVersion("2.0");
    Map<String, String> customAttributes = new HashMap<>();
    customAttributes.put("k1", "v1");
    customAttributes.put("k2", "v2");
    params.setCustomAttributes(customAttributes);
    RegisterSiteResponse resp = Tester.newClient(host).registerSite(params);
    assertNotNull(resp);
    assertNotNull(resp.getRpId());
}
Also used : RegisterSiteParams(io.jans.ca.common.params.RegisterSiteParams) RegisterSiteResponse(io.jans.ca.common.response.RegisterSiteResponse) Parameters(org.testng.annotations.Parameters) Test(org.testng.annotations.Test)

Example 5 with RegisterSiteResponse

use of io.jans.ca.common.response.RegisterSiteResponse in project jans by JanssenProject.

the class IntrospectAccessTokenTest method introspectAccessToken.

@Parameters({ "host", "opHost", "redirectUrls" })
@Test
public void introspectAccessToken(String host, String opHost, String redirectUrls) {
    ClientInterface client = Tester.newClient(host);
    RegisterSiteResponse setupResponse = SetupClientTest.setupClient(client, opHost, redirectUrls);
    final GetClientTokenParams params = new GetClientTokenParams();
    params.setOpHost(opHost);
    params.setScope(Lists.newArrayList("openid", "jans_client_api"));
    params.setClientId(setupResponse.getClientId());
    params.setClientSecret(setupResponse.getClientSecret());
    GetClientTokenResponse tokenResponse = client.getClientToken(params);
    assertNotNull(tokenResponse);
    notEmpty(tokenResponse.getAccessToken());
    IntrospectAccessTokenParams introspectParams = new IntrospectAccessTokenParams();
    introspectParams.setRpId(setupResponse.getRpId());
    introspectParams.setAccessToken(tokenResponse.getAccessToken());
    IntrospectAccessTokenResponse introspectionResponse = client.introspectAccessToken("Bearer " + tokenResponse.getAccessToken(), null, introspectParams);
    assertNotNull(introspectionResponse);
    assertTrue(introspectionResponse.isActive());
    assertNotNull(introspectionResponse.getIssuedAt());
    assertNotNull(introspectionResponse.getExpiresAt());
    assertTrue(introspectionResponse.getExpiresAt() >= introspectionResponse.getIssuedAt());
}
Also used : IntrospectAccessTokenParams(io.jans.ca.common.params.IntrospectAccessTokenParams) IntrospectAccessTokenResponse(io.jans.ca.common.response.IntrospectAccessTokenResponse) ClientInterface(io.jans.ca.client.ClientInterface) RegisterSiteResponse(io.jans.ca.common.response.RegisterSiteResponse) GetClientTokenResponse(io.jans.ca.common.response.GetClientTokenResponse) GetClientTokenParams(io.jans.ca.common.params.GetClientTokenParams) Parameters(org.testng.annotations.Parameters) Test(org.testng.annotations.Test)

Aggregations

RegisterSiteResponse (io.jans.ca.common.response.RegisterSiteResponse)76 Parameters (org.testng.annotations.Parameters)63 Test (org.testng.annotations.Test)62 ClientInterface (io.jans.ca.client.ClientInterface)58 GetTokensByCodeResponse2 (io.jans.ca.client.GetTokensByCodeResponse2)22 RegisterSiteParams (io.jans.ca.common.params.RegisterSiteParams)12 GetAuthorizationUrlParams (io.jans.ca.common.params.GetAuthorizationUrlParams)8 GetAuthorizationUrlResponse (io.jans.ca.common.response.GetAuthorizationUrlResponse)8 RpGetRptResponse (io.jans.ca.common.response.RpGetRptResponse)7 RsCheckAccessResponse (io.jans.ca.common.response.RsCheckAccessResponse)7 JsonNode (com.fasterxml.jackson.databind.JsonNode)4 RpGetRptParams (io.jans.ca.common.params.RpGetRptParams)4 RsProtectParams2 (io.jans.ca.client.RsProtectParams2)3 RpGetClaimsGatheringUrlParams (io.jans.ca.common.params.RpGetClaimsGatheringUrlParams)3 RpGetClaimsGatheringUrlResponse (io.jans.ca.common.response.RpGetClaimsGatheringUrlResponse)3 RegisterSiteTest (io.jans.ca.server.RegisterSiteTest)3 Jwt (io.jans.as.model.jwt.Jwt)2 CorrectRptIntrospectionResponse (io.jans.ca.common.introspection.CorrectRptIntrospectionResponse)2 GetClientTokenParams (io.jans.ca.common.params.GetClientTokenParams)2 GetUserInfoParams (io.jans.ca.common.params.GetUserInfoParams)2