gluu
公開メンバ関数 | 静的公開メンバ関数 | 静的公開変数類 | 限定公開変数類 | 全メンバ一覧
org.xdi.oxauth.ws.rs.MultivaluedClaims クラス
org.xdi.oxauth.ws.rs.MultivaluedClaims の継承関係図
Inheritance graph
org.xdi.oxauth.ws.rs.MultivaluedClaims 連携図
Collaboration graph

公開メンバ関数

void authorizationRequestWithMultivaluedClaimNone (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimHS256 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimHS384 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimHS512 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimRS256 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimRS384 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimRS512 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimES256 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimES384 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimES512 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimAlgA128KWEncA128GCM (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimAlgA256KWEncA256GCM (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimAlgRSA15EncA128CBCPLUSHS256 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String clientJwksUri, final String keyId, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimAlgRSA15EncA256CBCPLUSHS512 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String clientJwksUri, final String keyId, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestWithMultivaluedClaimAlgRSAOAEPEncA256GCM (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String clientJwksUri, final String keyId, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimNone (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimHS256 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimHS384 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimHS512 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimRS256 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri, final String keyId, final String clientJwksUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimRS384 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri, final String keyId, final String clientJwksUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimRS512 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri, final String keyId, final String clientJwksUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimES256 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri, final String keyId, final String clientJwksUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimES384 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri, final String keyId, final String clientJwksUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimES512 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String sectorIdentifierUri, final String keyId, final String clientJwksUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimAlgA128KWEncA128GCM (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimAlgA256KWEncA256GCM (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimAlgRSA15EncA128CBCPLUSHS256 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientKeyId, final String clientJwksUri, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimAlgRSA15EncA256CBCPLUSHS512 (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientKeyId, final String clientJwksUri, final String sectorIdentifierUri) throws Exception
 
void authorizationRequestObjectWithMultivaluedClaimAlgRSAOAEPEncA256GCM (final String userId, final String userSecret, final String redirectUri, final String redirectUris, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientKeyId, final String clientJwksUri, final String sectorIdentifierUri) throws Exception
 
void initTestSuite (ITestContext context) throws FileNotFoundException, IOException
 
WebDriver getDriver ()
 
void setDriver (WebDriver driver)
 
String getAuthorizationEndpoint ()
 
void setAuthorizationEndpoint (String authorizationEndpoint)
 
String getTokenEndpoint ()
 
void setTokenEndpoint (String tokenEndpoint)
 
String getUserInfoEndpoint ()
 
void setUserInfoEndpoint (String userInfoEndpoint)
 
String getClientInfoEndpoint ()
 
void setClientInfoEndpoint (String clientInfoEndpoint)
 
String getCheckSessionIFrame ()
 
void setCheckSessionIFrame (String checkSessionIFrame)
 
String getEndSessionEndpoint ()
 
void setEndSessionEndpoint (String endSessionEndpoint)
 
String getJwksUri ()
 
void setJwksUri (String jwksUri)
 
String getRegistrationEndpoint ()
 
void setRegistrationEndpoint (String registrationEndpoint)
 
String getIntrospectionEndpoint ()
 
void setIntrospectionEndpoint (String p_introspectionEndpoint)
 
Map< String, List< String > > getScopeToClaimsMapping ()
 
void setScopeToClaimsMapping (Map< String, List< String >> p_scopeToClaimsMapping)
 
String getIdGenEndpoint ()
 
void setIdGenEndpoint (String p_idGenEndpoint)
 
String getConfigurationEndpoint ()
 
void setConfigurationEndpoint (String configurationEndpoint)
 
void startSelenium ()
 
void stopSelenium ()
 
AuthorizationResponse authenticateResourceOwnerAndGrantAccess (String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
 
AuthorizationResponse authenticateResourceOwnerAndGrantAccess (String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret, boolean cleanupCookies)
 
AuthorizationResponse authenticateResourceOwnerAndGrantAccess (String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret, boolean cleanupCookies, boolean useNewDriver)
 
AuthorizationResponse authenticateResourceOwnerAndGrantAccess (String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret, boolean cleanupCookies, boolean useNewDriver, int authzSteps)
 
AuthorizationResponse authenticateResourceOwnerAndDenyAccess (String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
 
AuthorizationResponse authorizationRequestAndGrantAccess (String authorizeUrl, AuthorizationRequest authorizationRequest)
 
AuthorizationResponse authorizationRequestAndDenyAccess (String authorizeUrl, AuthorizationRequest authorizationRequest)
 
AuthorizationResponse authenticateResourceOwner (String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret, boolean cleanupCookies)
 
String waitForResourceOwnerAndGrantLoginForm (String authorizeUrl, AuthorizationRequest authorizationRequest, boolean cleanupCookies)
 
String waitForResourceOwnerAndGrantLoginForm (String authorizeUrl, AuthorizationRequest authorizationRequest)
 
void discovery (ITestContext context) throws Exception
 
void showTitle (String title)
 
void showTitle (String title)
 
void showEntity (String entity)
 
void showResponse (String title, Response response)
 

静的公開メンバ関数

static void showClient (BaseClient client)
 
static void showClient (BaseClient client, CookieStore cookieStore)
 
static void showClientUserAgent (BaseClient client)
 
static void assertErrorResponse (BaseResponseWithErrors p_response, IErrorType p_errorType)
 
static DefaultHttpClient createHttpClient ()
 
static DefaultHttpClient createHttpClient (HostnameVerifierType p_verifierType)
 
static ClientExecutor clientExecutor () throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException
 
static ClientExecutor clientExecutor (boolean trustAll) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException
 
static HttpClient createHttpClientTrustAll () throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException
 
static void showResponse (String title, Response response, Object entity)
 
static void fails (Throwable e)
 
static void output (String p_msg)
 
static Archive<?> createDeployment ()
 

静的公開変数類

static FileConfiguration testData
 

限定公開変数類

WebDriver driver
 
String authorizationEndpoint
 
String authorizationPageEndpoint
 
String gluuConfigurationEndpoint
 
String tokenEndpoint
 
String userInfoEndpoint
 
String clientInfoEndpoint
 
String checkSessionIFrame
 
String endSessionEndpoint
 
String jwksUri
 
String registrationEndpoint
 
String configurationEndpoint
 
String idGenEndpoint
 
String introspectionEndpoint
 
Map< String, List< String > > scopeToClaimsMapping
 

詳解

著者
Javier Rojas Blum
バージョン
July 4, 2018

関数詳解

◆ assertErrorResponse()

static void org.xdi.oxauth.BaseTest.assertErrorResponse ( BaseResponseWithErrors  p_response,
IErrorType  p_errorType 
)
inlinestaticinherited
787  {
788  assertEquals(p_response.getStatus(), 400, "Unexpected response code. Entity: " + p_response.getEntity());
789  assertNotNull(p_response.getEntity(), "The entity is null");
790  assertEquals(p_response.getErrorType(), p_errorType);
791  assertTrue(StringUtils.isNotBlank(p_response.getErrorDescription()));
792  }
T getErrorType()
Definition: BaseResponseWithErrors.java:48
String getEntity()
Definition: BaseResponse.java:85
int getStatus()
Definition: BaseResponse.java:49
String getErrorDescription()
Definition: BaseResponseWithErrors.java:40

◆ authenticateResourceOwner()

AuthorizationResponse org.xdi.oxauth.BaseTest.authenticateResourceOwner ( String  authorizeUrl,
AuthorizationRequest  authorizationRequest,
String  userId,
String  userSecret,
boolean  cleanupCookies 
)
inlineinherited

The authorization server authenticates the resource owner (via the user-agent) No authorization page.

556  {
557  String authorizationRequestUrl = authorizeUrl + "?" + authorizationRequest.getQueryString();
558 
559  AuthorizeClient authorizeClient = new AuthorizeClient(authorizeUrl);
560  authorizeClient.setRequest(authorizationRequest);
561 
562  System.out.println("authenticateResourceOwner: authorizationRequestUrl:" + authorizationRequestUrl);
563  startSelenium();
564  if (cleanupCookies) {
565  System.out.println("authenticateResourceOwner: Cleaning cookies");
567  }
568 // try {
569  driver.navigate().to(authorizationRequestUrl);
570 // } catch (WebDriverException ex) {
571 // if (ex.getCause() instanceof ScriptException) {
572 // System.out.println("authenticateResourceOwner: Script error: " + ex.getMessage());
573 // } else {
574 // throw ex;
575 // }
576 // }
577 
578  if (userSecret != null) {
579  if (userId != null) {
580  WebElement usernameElement = driver.findElement(By.name(loginFormUsername));
581  usernameElement.sendKeys(userId);
582  }
583 
584  WebElement passwordElement = driver.findElement(By.name(loginFormPassword));
585  passwordElement.sendKeys(userSecret);
586 
587  WebElement loginButton = driver.findElement(By.name(loginFormLoginButton));
588 
589  loginButton.click();
590  }
591 
592  String authorizationResponseStr = driver.getCurrentUrl();
593 
594  Cookie sessionStateCookie = driver.manage().getCookieNamed("session_state");
595  String sessionState = null;
596  if (sessionStateCookie != null) {
597  sessionState = sessionStateCookie.getValue();
598  }
599  System.out.println("authenticateResourceOwner: sessionState:" + sessionState);
600 
601  stopSelenium();
602 
603  AuthorizationResponse authorizationResponse = new AuthorizationResponse(authorizationResponseStr);
604  if (authorizationRequest.getRedirectUri() != null && authorizationRequest.getRedirectUri().equals(authorizationResponseStr)) {
605  authorizationResponse.setResponseMode(ResponseMode.FORM_POST);
606  }
607  authorizeClient.setResponse(authorizationResponse);
608  showClientUserAgent(authorizeClient);
609 
610  return authorizationResponse;
611  }
FORM_POST
Definition: ResponseMode.java:33
String loginFormUsername
Definition: BaseTest.java:88
String loginFormPassword
Definition: BaseTest.java:89
void deleteAllCookies()
Definition: BaseTest.java:661
void stopSelenium()
Definition: BaseTest.java:243
Definition: AuthorizeClient.java:29
Definition: ResponseMode.java:16
void startSelenium()
Definition: BaseTest.java:230
String loginFormLoginButton
Definition: BaseTest.java:90
String getRedirectUri()
Definition: AuthorizationRequest.java:184
void setResponseMode(ResponseMode responseMode)
Definition: AuthorizationResponse.java:228
void setRequest(T request)
Definition: BaseClient.java:68
void setResponse(V response)
Definition: BaseClient.java:76
WebDriver driver
Definition: BaseTest.java:70
Definition: AuthorizationResponse.java:32
String getQueryString()
Definition: AuthorizationRequest.java:486
static void showClientUserAgent(BaseClient client)
Definition: BaseTest.java:783

◆ authenticateResourceOwnerAndDenyAccess()

AuthorizationResponse org.xdi.oxauth.BaseTest.authenticateResourceOwnerAndDenyAccess ( String  authorizeUrl,
AuthorizationRequest  authorizationRequest,
String  userId,
String  userSecret 
)
inlineinherited
408  {
409  String authorizationRequestUrl = authorizeUrl + "?" + authorizationRequest.getQueryString();
410 
411  AuthorizeClient authorizeClient = new AuthorizeClient(authorizeUrl);
412  authorizeClient.setRequest(authorizationRequest);
413 
414  System.out.println("authenticateResourceOwnerAndDenyAccess: authorizationRequestUrl:" + authorizationRequestUrl);
415  startSelenium();
416  driver.navigate().to(authorizationRequestUrl);
417 
418  WebElement usernameElement = driver.findElement(By.name(loginFormUsername));
419  WebElement passwordElement = driver.findElement(By.name(loginFormPassword));
420  WebElement loginButton = driver.findElement(By.name(loginFormLoginButton));
421 
422  if (userId != null) {
423  usernameElement.sendKeys(userId);
424  }
425  passwordElement.sendKeys(userSecret);
426  loginButton.click();
427 
428  String authorizationResponseStr = driver.getCurrentUrl();
429 
430  WebElement doNotAllowButton = driver.findElement(By.id(authorizeFormDoNotAllowButton));
431 
432  final String previousURL = driver.getCurrentUrl();
433  doNotAllowButton.click();
434  WebDriverWait wait = new WebDriverWait(driver, 10);
435  wait.until(new ExpectedCondition<Boolean>() {
436  public Boolean apply(WebDriver d) {
437  return (d.getCurrentUrl() != previousURL);
438  }
439  });
440 
441  authorizationResponseStr = driver.getCurrentUrl();
442 
443  Cookie sessionIdCookie = driver.manage().getCookieNamed("session_id");
444  String sessionId = null;
445  if (sessionIdCookie != null) {
446  sessionId = sessionIdCookie.getValue();
447  }
448  System.out.println("authenticateResourceOwnerAndDenyAccess: sessionId:" + sessionId);
449 
450  stopSelenium();
451 
452  AuthorizationResponse authorizationResponse = new AuthorizationResponse(authorizationResponseStr);
453  if (authorizationRequest.getRedirectUri() != null && authorizationRequest.getRedirectUri().equals(authorizationResponseStr)) {
454  authorizationResponse.setResponseMode(ResponseMode.FORM_POST);
455  }
456  authorizationResponse.setSessionId(sessionId);
457  authorizeClient.setResponse(authorizationResponse);
458  showClientUserAgent(authorizeClient);
459 
460  return authorizationResponse;
461  }
FORM_POST
Definition: ResponseMode.java:33
String loginFormUsername
Definition: BaseTest.java:88
String loginFormPassword
Definition: BaseTest.java:89
void stopSelenium()
Definition: BaseTest.java:243
String authorizeFormDoNotAllowButton
Definition: BaseTest.java:92
void setSessionId(String p_sessionId)
Definition: AuthorizationResponse.java:212
Definition: AuthorizeClient.java:29
Definition: ResponseMode.java:16
void startSelenium()
Definition: BaseTest.java:230
String loginFormLoginButton
Definition: BaseTest.java:90
String getRedirectUri()
Definition: AuthorizationRequest.java:184
void setResponseMode(ResponseMode responseMode)
Definition: AuthorizationResponse.java:228
void setRequest(T request)
Definition: BaseClient.java:68
void setResponse(V response)
Definition: BaseClient.java:76
WebDriver driver
Definition: BaseTest.java:70
Definition: AuthorizationResponse.java:32
String getQueryString()
Definition: AuthorizationRequest.java:486
static void showClientUserAgent(BaseClient client)
Definition: BaseTest.java:783

◆ authenticateResourceOwnerAndGrantAccess() [1/4]

AuthorizationResponse org.xdi.oxauth.BaseTest.authenticateResourceOwnerAndGrantAccess ( String  authorizeUrl,
AuthorizationRequest  authorizationRequest,
String  userId,
String  userSecret 
)
inlineinherited

The authorization server authenticates the resource owner (via the user-agent) and establishes whether the resource owner grants or denies the client's access request.

253  {
254  return authenticateResourceOwnerAndGrantAccess(authorizeUrl, authorizationRequest, userId, userSecret, true);
255  }
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252

◆ authenticateResourceOwnerAndGrantAccess() [2/4]

AuthorizationResponse org.xdi.oxauth.BaseTest.authenticateResourceOwnerAndGrantAccess ( String  authorizeUrl,
AuthorizationRequest  authorizationRequest,
String  userId,
String  userSecret,
boolean  cleanupCookies 
)
inlineinherited

The authorization server authenticates the resource owner (via the user-agent) and establishes whether the resource owner grants or denies the client's access request.

262  {
263  return authenticateResourceOwnerAndGrantAccess(authorizeUrl, authorizationRequest, userId, userSecret, cleanupCookies, false);
264  }
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252

◆ authenticateResourceOwnerAndGrantAccess() [3/4]

AuthorizationResponse org.xdi.oxauth.BaseTest.authenticateResourceOwnerAndGrantAccess ( String  authorizeUrl,
AuthorizationRequest  authorizationRequest,
String  userId,
String  userSecret,
boolean  cleanupCookies,
boolean  useNewDriver 
)
inlineinherited

The authorization server authenticates the resource owner (via the user-agent) and establishes whether the resource owner grants or denies the client's access request.

272  {
273  return authenticateResourceOwnerAndGrantAccess(authorizeUrl, authorizationRequest, userId, userSecret, cleanupCookies, useNewDriver, 1);
274  }
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252

◆ authenticateResourceOwnerAndGrantAccess() [4/4]

AuthorizationResponse org.xdi.oxauth.BaseTest.authenticateResourceOwnerAndGrantAccess ( String  authorizeUrl,
AuthorizationRequest  authorizationRequest,
String  userId,
String  userSecret,
boolean  cleanupCookies,
boolean  useNewDriver,
int  authzSteps 
)
inlineinherited

The authorization server authenticates the resource owner (via the user-agent) and establishes whether the resource owner grants or denies the client's access request.

282  {
283  WebDriver currentDriver = initWebDriver(useNewDriver, cleanupCookies);
284 
285  AuthorizeClient authorizeClient = processAuthentication(currentDriver, authorizeUrl, authorizationRequest,
286  userId, userSecret);
287 
288  int remainAuthzSteps = authzSteps;
289 
290  String authorizationResponseStr = null;
291  do {
292  authorizationResponseStr = acceptAuthorization(currentDriver);
293  remainAuthzSteps--;
294  } while (remainAuthzSteps >= 1);
295 
296  AuthorizationResponse authorizationResponse = buildAuthorizationResponse(authorizationRequest, useNewDriver,
297  currentDriver, authorizeClient, authorizationResponseStr);
298 
299  stopWebDriver(useNewDriver, currentDriver);
300 
301  return authorizationResponse;
302  }
AuthorizationResponse buildAuthorizationResponse(AuthorizationRequest authorizationRequest, boolean useNewDriver, WebDriver currentDriver, AuthorizeClient authorizeClient, String authorizationResponseStr)
Definition: BaseTest.java:387
String acceptAuthorization(WebDriver currentDriver)
Definition: BaseTest.java:358
AuthorizeClient processAuthentication(WebDriver currentDriver, String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:330
Definition: AuthorizeClient.java:29
WebDriver initWebDriver(boolean useNewDriver, boolean cleanupCookies)
Definition: BaseTest.java:304
Definition: AuthorizationResponse.java:32
void stopWebDriver(boolean useNewDriver, WebDriver currentDriver)
Definition: BaseTest.java:321

◆ authorizationRequestAndDenyAccess()

AuthorizationResponse org.xdi.oxauth.BaseTest.authorizationRequestAndDenyAccess ( String  authorizeUrl,
AuthorizationRequest  authorizationRequest 
)
inlineinherited
509  {
510  String authorizationRequestUrl = authorizeUrl + "?" + authorizationRequest.getQueryString();
511 
512  AuthorizeClient authorizeClient = new AuthorizeClient(authorizeUrl);
513  authorizeClient.setRequest(authorizationRequest);
514 
515  System.out.println("authorizationRequestAndDenyAccess: authorizationRequestUrl:" + authorizationRequestUrl);
516  startSelenium();
517  driver.navigate().to(authorizationRequestUrl);
518 
519  WebElement doNotAllowButton = driver.findElement(By.id(authorizeFormDoNotAllowButton));
520 
521  final String previousURL = driver.getCurrentUrl();
522  doNotAllowButton.click();
523  WebDriverWait wait = new WebDriverWait(driver, 10);
524  wait.until(new ExpectedCondition<Boolean>() {
525  public Boolean apply(WebDriver d) {
526  return (d.getCurrentUrl() != previousURL);
527  }
528  });
529 
530  String authorizationResponseStr = driver.getCurrentUrl();
531 
532  Cookie sessionStateCookie = driver.manage().getCookieNamed("session_state");
533  String sessionState = null;
534  if (sessionStateCookie != null) {
535  sessionState = sessionStateCookie.getValue();
536  }
537  System.out.println("authorizationRequestAndDenyAccess: sessionState:" + sessionState);
538 
539  stopSelenium();
540 
541  AuthorizationResponse authorizationResponse = new AuthorizationResponse(authorizationResponseStr);
542  if (authorizationRequest.getRedirectUri() != null && authorizationRequest.getRedirectUri().equals(authorizationResponseStr)) {
543  authorizationResponse.setResponseMode(ResponseMode.FORM_POST);
544  }
545  authorizeClient.setResponse(authorizationResponse);
546  showClientUserAgent(authorizeClient);
547 
548  return authorizationResponse;
549  }
FORM_POST
Definition: ResponseMode.java:33
void stopSelenium()
Definition: BaseTest.java:243
String authorizeFormDoNotAllowButton
Definition: BaseTest.java:92
Definition: AuthorizeClient.java:29
Definition: ResponseMode.java:16
void startSelenium()
Definition: BaseTest.java:230
String getRedirectUri()
Definition: AuthorizationRequest.java:184
void setResponseMode(ResponseMode responseMode)
Definition: AuthorizationResponse.java:228
void setRequest(T request)
Definition: BaseClient.java:68
void setResponse(V response)
Definition: BaseClient.java:76
WebDriver driver
Definition: BaseTest.java:70
Definition: AuthorizationResponse.java:32
String getQueryString()
Definition: AuthorizationRequest.java:486
static void showClientUserAgent(BaseClient client)
Definition: BaseTest.java:783

◆ authorizationRequestAndGrantAccess()

AuthorizationResponse org.xdi.oxauth.BaseTest.authorizationRequestAndGrantAccess ( String  authorizeUrl,
AuthorizationRequest  authorizationRequest 
)
inlineinherited
464  {
465  String authorizationRequestUrl = authorizeUrl + "?" + authorizationRequest.getQueryString();
466 
467  AuthorizeClient authorizeClient = new AuthorizeClient(authorizeUrl);
468  authorizeClient.setRequest(authorizationRequest);
469 
470  System.out.println("authorizationRequestAndGrantAccess: authorizationRequestUrl:" + authorizationRequestUrl);
471  startSelenium();
472  driver.navigate().to(authorizationRequestUrl);
473 
474  String authorizationResponseStr = driver.getCurrentUrl();
475 
476  WebElement allowButton = driver.findElement(By.id(authorizeFormAllowButton));
477 
478  final String previousURL = driver.getCurrentUrl();
479  allowButton.click();
480  WebDriverWait wait = new WebDriverWait(driver, 10);
481  wait.until(new ExpectedCondition<Boolean>() {
482  public Boolean apply(WebDriver d) {
483  return (d.getCurrentUrl() != previousURL);
484  }
485  });
486 
487  authorizationResponseStr = driver.getCurrentUrl();
488 
489  Cookie sessionStateCookie = driver.manage().getCookieNamed("session_state");
490  String sessionState = null;
491  if (sessionStateCookie != null) {
492  sessionState = sessionStateCookie.getValue();
493  }
494  System.out.println("authorizationRequestAndGrantAccess: sessionState:" + sessionState);
495 
496  stopSelenium();
497 
498  AuthorizationResponse authorizationResponse = new AuthorizationResponse(authorizationResponseStr);
499  if (authorizationRequest.getRedirectUri() != null && authorizationRequest.getRedirectUri().equals(authorizationResponseStr)) {
500  authorizationResponse.setResponseMode(ResponseMode.FORM_POST);
501  }
502  authorizeClient.setResponse(authorizationResponse);
503  showClientUserAgent(authorizeClient);
504 
505  return authorizationResponse;
506  }
FORM_POST
Definition: ResponseMode.java:33
void stopSelenium()
Definition: BaseTest.java:243
Definition: AuthorizeClient.java:29
Definition: ResponseMode.java:16
void startSelenium()
Definition: BaseTest.java:230
String getRedirectUri()
Definition: AuthorizationRequest.java:184
void setResponseMode(ResponseMode responseMode)
Definition: AuthorizationResponse.java:228
void setRequest(T request)
Definition: BaseClient.java:68
void setResponse(V response)
Definition: BaseClient.java:76
WebDriver driver
Definition: BaseTest.java:70
Definition: AuthorizationResponse.java:32
String getQueryString()
Definition: AuthorizationRequest.java:486
static void showClientUserAgent(BaseClient client)
Definition: BaseTest.java:783
String authorizeFormAllowButton
Definition: BaseTest.java:91

◆ authorizationRequestObjectWithMultivaluedClaimAlgA128KWEncA128GCM()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimAlgA128KWEncA128GCM ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
2402  {
2403  showTitle("authorizationRequestObjectWithMultivaluedClaimAlgA128KWEncA128GCM");
2404 
2405  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
2406 
2407  // 1. Register client
2408  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
2409  StringUtils.spaceSeparatedToList(redirectUris));
2410  registerRequest.setResponseTypes(responseTypes);
2411  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
2418  registerRequest.setClaims(Arrays.asList("member_of"));
2419 
2420  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
2421  registerClient.setRequest(registerRequest);
2422  RegisterResponse registerResponse = registerClient.exec();
2423 
2424  showClient(registerClient);
2425  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
2426  assertNotNull(registerResponse.getClientId());
2427  assertNotNull(registerResponse.getClientSecret());
2428  assertNotNull(registerResponse.getRegistrationAccessToken());
2429  assertNotNull(registerResponse.getClientIdIssuedAt());
2430  assertNotNull(registerResponse.getClientSecretExpiresAt());
2431 
2432  String clientId = registerResponse.getClientId();
2433  String clientSecret = registerResponse.getClientSecret();
2434 
2435  // 2. Request authorization
2436  List<String> scopes = Arrays.asList("openid");
2437  String nonce = UUID.randomUUID().toString();
2438  String state = UUID.randomUUID().toString();
2439 
2440  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2441  authorizationRequest.setState(state);
2442 
2443  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
2444  authorizationRequest,
2447  clientSecret);
2448  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
2449  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2450  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2451  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
2452  authorizationRequest.setRequest(authJwt);
2453 
2454  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
2455  authorizeClient.setRequest(authorizationRequest);
2456 
2458  authorizationEndpoint, authorizationRequest, userId, userSecret);
2459 
2460  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2461  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2462  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2463  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2464  assertNotNull(authorizationResponse.getState(), "The state is null");
2465 
2466  String idToken = authorizationResponse.getIdToken();
2467  String accessToken = authorizationResponse.getAccessToken();
2468 
2469  // 3. Validate id_token
2470  Jwe jwe = Jwe.parse(idToken, null, clientSecret.getBytes(Util.UTF8_STRING_ENCODING));
2471  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2472  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2473  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2474  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2475  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2476  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2477  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2478  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2479  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2480  assertNotNull(jwe.getClaims().getClaimAsStringList("member_of"));
2481  assertTrue(jwe.getClaims().getClaimAsStringList("member_of").size() > 1);
2482 
2483  // 4. Request user info
2484  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
2485  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2486  userInfoClient.setRequest(userInfoRequest);
2487  userInfoClient.setSharedKey(clientSecret);
2488  UserInfoResponse userInfoResponse = userInfoClient.exec();
2489 
2490  showClient(userInfoClient);
2491  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2492  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2493  assertNotNull(userInfoResponse.getClaim("member_of"));
2494  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
2495  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
Definition: RegisterResponse.java:34
void setIdTokenEncryptedResponseEnc(BlockEncryptionAlgorithm idTokenEncryptedResponseEnc)
Definition: RegisterRequest.java:592
String getState()
Definition: AuthorizationResponse.java:314
static Jwe parse(String encodedJwe, PrivateKey privateKey, byte[] sharedSymmetricKey)
Definition: Jwe.java:83
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
static void showClient(BaseClient client)
Definition: BaseTest.java:775
void setRequestObjectEncryptionEnc(BlockEncryptionAlgorithm requestObjectEncryptionEnc)
Definition: RegisterRequest.java:704
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
void setRequestObjectEncryptionAlg(KeyEncryptionAlgorithm requestObjectEncryptionAlg)
Definition: RegisterRequest.java:684
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
static final String UTF8_STRING_ENCODING
Definition: Util.java:44
A128KW
Definition: KeyEncryptionAlgorithm.java:16
void setRequest(T request)
Definition: BaseClient.java:68
void setUserInfoEncryptedResponseAlg(KeyEncryptionAlgorithm userInfoEncryptedResponseAlg)
Definition: RegisterRequest.java:628
void setIdTokenEncryptedResponseAlg(KeyEncryptionAlgorithm idTokenEncryptedResponseAlg)
Definition: RegisterRequest.java:574
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
Definition: Jwe.java:19
Definition: BlockEncryptionAlgorithm.java:12
A128GCM
Definition: BlockEncryptionAlgorithm.java:16
void setSharedKey(String sharedKey)
Definition: UserInfoClient.java:191
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Definition: Util.java:40
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimAlgA256KWEncA256GCM()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimAlgA256KWEncA256GCM ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
2501  {
2502  showTitle("authorizationRequestObjectWithMultivaluedClaimAlgA256KWEncA256GCM");
2503 
2504  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
2505 
2506  // 1. Register client
2507  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
2508  StringUtils.spaceSeparatedToList(redirectUris));
2509  registerRequest.setResponseTypes(responseTypes);
2510  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
2517  registerRequest.setClaims(Arrays.asList("member_of"));
2518 
2519  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
2520  registerClient.setRequest(registerRequest);
2521  RegisterResponse registerResponse = registerClient.exec();
2522 
2523  showClient(registerClient);
2524  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
2525  assertNotNull(registerResponse.getClientId());
2526  assertNotNull(registerResponse.getClientSecret());
2527  assertNotNull(registerResponse.getRegistrationAccessToken());
2528  assertNotNull(registerResponse.getClientIdIssuedAt());
2529  assertNotNull(registerResponse.getClientSecretExpiresAt());
2530 
2531  String clientId = registerResponse.getClientId();
2532  String clientSecret = registerResponse.getClientSecret();
2533 
2534  // 2. Request authorization
2535  List<String> scopes = Arrays.asList("openid");
2536  String nonce = UUID.randomUUID().toString();
2537  String state = UUID.randomUUID().toString();
2538 
2539  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2540  authorizationRequest.setState(state);
2541 
2542  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
2543  authorizationRequest,
2546  clientSecret);
2547  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
2548  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2549  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2550  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
2551  authorizationRequest.setRequest(authJwt);
2552 
2553  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
2554  authorizeClient.setRequest(authorizationRequest);
2555 
2557  authorizationEndpoint, authorizationRequest, userId, userSecret);
2558 
2559  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2560  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2561  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2562  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2563  assertNotNull(authorizationResponse.getState(), "The state is null");
2564 
2565  String idToken = authorizationResponse.getIdToken();
2566  String accessToken = authorizationResponse.getAccessToken();
2567 
2568  // 3. Validate id_token
2569  Jwe jwe = Jwe.parse(idToken, null, clientSecret.getBytes(Util.UTF8_STRING_ENCODING));
2570  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2571  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2572  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2573  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2574  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2575  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2576  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2577  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2578  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2579  assertNotNull(jwe.getClaims().getClaimAsStringList("member_of"));
2580  assertTrue(jwe.getClaims().getClaimAsStringList("member_of").size() > 1);
2581 
2582  // 4. Request user info
2583  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
2584  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2585  userInfoClient.setRequest(userInfoRequest);
2586  userInfoClient.setSharedKey(clientSecret);
2587  UserInfoResponse userInfoResponse = userInfoClient.exec();
2588 
2589  showClient(userInfoClient);
2590  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2591  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2592  assertNotNull(userInfoResponse.getClaim("member_of"));
2593  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
2594  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
Definition: RegisterResponse.java:34
A256GCM
Definition: BlockEncryptionAlgorithm.java:17
void setIdTokenEncryptedResponseEnc(BlockEncryptionAlgorithm idTokenEncryptedResponseEnc)
Definition: RegisterRequest.java:592
String getState()
Definition: AuthorizationResponse.java:314
static Jwe parse(String encodedJwe, PrivateKey privateKey, byte[] sharedSymmetricKey)
Definition: Jwe.java:83
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
static void showClient(BaseClient client)
Definition: BaseTest.java:775
void setRequestObjectEncryptionEnc(BlockEncryptionAlgorithm requestObjectEncryptionEnc)
Definition: RegisterRequest.java:704
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
void setRequestObjectEncryptionAlg(KeyEncryptionAlgorithm requestObjectEncryptionAlg)
Definition: RegisterRequest.java:684
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
A256KW
Definition: KeyEncryptionAlgorithm.java:17
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
static final String UTF8_STRING_ENCODING
Definition: Util.java:44
void setRequest(T request)
Definition: BaseClient.java:68
void setUserInfoEncryptedResponseAlg(KeyEncryptionAlgorithm userInfoEncryptedResponseAlg)
Definition: RegisterRequest.java:628
void setIdTokenEncryptedResponseAlg(KeyEncryptionAlgorithm idTokenEncryptedResponseAlg)
Definition: RegisterRequest.java:574
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
Definition: Jwe.java:19
Definition: BlockEncryptionAlgorithm.java:12
void setSharedKey(String sharedKey)
Definition: UserInfoClient.java:191
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Definition: Util.java:40
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimAlgRSA15EncA128CBCPLUSHS256()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimAlgRSA15EncA128CBCPLUSHS256 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientKeyId,
final String  clientJwksUri,
final String  sectorIdentifierUri 
) throws Exception
inline
2603  {
2604  showTitle("authorizationRequestObjectWithMultivaluedClaimAlgRSA15EncA128CBCPLUSHS256");
2605 
2606  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
2607 
2608  // 1. Register client
2609  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
2610  StringUtils.spaceSeparatedToList(redirectUris));
2611  registerRequest.setResponseTypes(responseTypes);
2612  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
2613  registerRequest.setJwksUri(clientJwksUri);
2620  registerRequest.setClaims(Arrays.asList("member_of"));
2621 
2622  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
2623  registerClient.setRequest(registerRequest);
2624  RegisterResponse registerResponse = registerClient.exec();
2625 
2626  showClient(registerClient);
2627  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
2628  assertNotNull(registerResponse.getClientId());
2629  assertNotNull(registerResponse.getClientSecret());
2630  assertNotNull(registerResponse.getRegistrationAccessToken());
2631  assertNotNull(registerResponse.getClientIdIssuedAt());
2632  assertNotNull(registerResponse.getClientSecretExpiresAt());
2633 
2634  String clientId = registerResponse.getClientId();
2635 
2636  // 2. Choose encryption key
2637  JwkClient jwkClient = new JwkClient(jwksUri);
2638  JwkResponse jwkResponse = jwkClient.exec();
2639  String serverKeyId = jwkResponse.getKeyId(SignatureAlgorithm.RS256);
2640  assertNotNull(serverKeyId);
2641 
2642  // 3. Request authorization
2643  JSONObject jwks = JwtUtil.getJSONWebKeys(jwksUri);
2644  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
2645 
2646  List<String> scopes = Arrays.asList("openid");
2647  String nonce = UUID.randomUUID().toString();
2648  String state = UUID.randomUUID().toString();
2649 
2650  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2651  authorizationRequest.setState(state);
2652 
2653  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest,
2655  jwtAuthorizationRequest.setKeyId(serverKeyId);
2656  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
2657  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2658  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2659  String authJwt = jwtAuthorizationRequest.getEncodedJwt(jwks);
2660  authorizationRequest.setRequest(authJwt);
2661 
2662  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
2663  authorizeClient.setRequest(authorizationRequest);
2664 
2666  authorizationEndpoint, authorizationRequest, userId, userSecret);
2667 
2668  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2669  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2670  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2671  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2672  assertNotNull(authorizationResponse.getState(), "The state is null");
2673 
2674  String idToken = authorizationResponse.getIdToken();
2675  String accessToken = authorizationResponse.getAccessToken();
2676 
2677  // 4. Validate id_token
2678  PrivateKey privateKey = cryptoProvider.getPrivateKey(clientKeyId);
2679 
2680  Jwe jwe = Jwe.parse(idToken, privateKey, null);
2681  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2682  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2683  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2684  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2685  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2686  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2687  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2688  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2689  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2690  assertNotNull(jwe.getClaims().getClaimAsStringList("member_of"));
2691  assertTrue(jwe.getClaims().getClaimAsStringList("member_of").size() > 1);
2692 
2693  // 5. Request user info
2694  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
2695  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2696  userInfoClient.setRequest(userInfoRequest);
2697  userInfoClient.setPrivateKey(privateKey);
2698  UserInfoResponse userInfoResponse = userInfoClient.exec();
2699 
2700  showClient(userInfoClient);
2701  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2702  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2703  assertNotNull(userInfoResponse.getClaim("member_of"));
2704  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
2705  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
A128CBC_PLUS_HS256
Definition: BlockEncryptionAlgorithm.java:14
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
void setIdTokenEncryptedResponseEnc(BlockEncryptionAlgorithm idTokenEncryptedResponseEnc)
Definition: RegisterRequest.java:592
String getState()
Definition: AuthorizationResponse.java:314
JwkResponse exec()
Definition: JwkClient.java:54
static Jwe parse(String encodedJwe, PrivateKey privateKey, byte[] sharedSymmetricKey)
Definition: Jwe.java:83
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
void setPrivateKey(PrivateKey privateKey)
Definition: UserInfoClient.java:195
void setRequestObjectEncryptionEnc(BlockEncryptionAlgorithm requestObjectEncryptionEnc)
Definition: RegisterRequest.java:704
Definition: JwtUtil.java:38
PrivateKey getPrivateKey(String alias)
Definition: OxAuthCryptoProvider.java:264
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
void setRequestObjectEncryptionAlg(KeyEncryptionAlgorithm requestObjectEncryptionAlg)
Definition: RegisterRequest.java:684
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
RS256
Definition: SignatureAlgorithm.java:26
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
void setRequest(T request)
Definition: BaseClient.java:68
void setUserInfoEncryptedResponseAlg(KeyEncryptionAlgorithm userInfoEncryptedResponseAlg)
Definition: RegisterRequest.java:628
void setIdTokenEncryptedResponseAlg(KeyEncryptionAlgorithm idTokenEncryptedResponseAlg)
Definition: RegisterRequest.java:574
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
Definition: Jwe.java:19
Definition: JwkResponse.java:27
Definition: BlockEncryptionAlgorithm.java:12
RSA1_5
Definition: KeyEncryptionAlgorithm.java:14
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
static JSONObject getJSONWebKeys(String jwksUri)
Definition: JwtUtil.java:203
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
String getKeyId(SignatureAlgorithm signatureAlgorithm)
Definition: JwkResponse.java:112
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimAlgRSA15EncA256CBCPLUSHS512()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimAlgRSA15EncA256CBCPLUSHS512 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientKeyId,
final String  clientJwksUri,
final String  sectorIdentifierUri 
) throws Exception
inline
2714  {
2715  showTitle("authorizationRequestObjectWithMultivaluedClaimAlgRSA15EncA256CBCPLUSHS512");
2716 
2717  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
2718 
2719  // 1. Register client
2720  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
2721  StringUtils.spaceSeparatedToList(redirectUris));
2722  registerRequest.setResponseTypes(responseTypes);
2723  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
2724  registerRequest.setJwksUri(clientJwksUri);
2731  registerRequest.setClaims(Arrays.asList("member_of"));
2732 
2733  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
2734  registerClient.setRequest(registerRequest);
2735  RegisterResponse registerResponse = registerClient.exec();
2736 
2737  showClient(registerClient);
2738  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
2739  assertNotNull(registerResponse.getClientId());
2740  assertNotNull(registerResponse.getClientSecret());
2741  assertNotNull(registerResponse.getRegistrationAccessToken());
2742  assertNotNull(registerResponse.getClientIdIssuedAt());
2743  assertNotNull(registerResponse.getClientSecretExpiresAt());
2744 
2745  String clientId = registerResponse.getClientId();
2746 
2747  // 2. Choose encryption key
2748  JwkClient jwkClient = new JwkClient(jwksUri);
2749  JwkResponse jwkResponse = jwkClient.exec();
2750  String serverKeyId = jwkResponse.getKeyId(SignatureAlgorithm.RS256);
2751  assertNotNull(serverKeyId);
2752 
2753  // 3. Request authorization
2754  JSONObject jwks = JwtUtil.getJSONWebKeys(jwksUri);
2755  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
2756 
2757  List<String> scopes = Arrays.asList("openid");
2758  String nonce = UUID.randomUUID().toString();
2759  String state = UUID.randomUUID().toString();
2760 
2761  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2762  authorizationRequest.setState(state);
2763 
2764  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest,
2766  jwtAuthorizationRequest.setKeyId(serverKeyId);
2767  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
2768  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2769  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2770  String authJwt = jwtAuthorizationRequest.getEncodedJwt(jwks);
2771  authorizationRequest.setRequest(authJwt);
2772 
2773  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
2774  authorizeClient.setRequest(authorizationRequest);
2775 
2777  authorizationEndpoint, authorizationRequest, userId, userSecret);
2778 
2779  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2780  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2781  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2782  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2783  assertNotNull(authorizationResponse.getState(), "The state is null");
2784 
2785  String idToken = authorizationResponse.getIdToken();
2786  String accessToken = authorizationResponse.getAccessToken();
2787 
2788  // 4. Validate id_token
2789  PrivateKey privateKey = cryptoProvider.getPrivateKey(clientKeyId);
2790 
2791  Jwe jwe = Jwe.parse(idToken, privateKey, null);
2792  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2793  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2794  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2795  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2796  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2797  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2798  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2799  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2800  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2801  assertNotNull(jwe.getClaims().getClaimAsStringList("member_of"));
2802  assertTrue(jwe.getClaims().getClaimAsStringList("member_of").size() > 1);
2803 
2804  // 5. Request user info
2805  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
2806  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2807  userInfoClient.setRequest(userInfoRequest);
2808  userInfoClient.setPrivateKey(privateKey);
2809  UserInfoResponse userInfoResponse = userInfoClient.exec();
2810 
2811  showClient(userInfoClient);
2812  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2813  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2814  assertNotNull(userInfoResponse.getClaim("member_of"));
2815  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
2816  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
void setIdTokenEncryptedResponseEnc(BlockEncryptionAlgorithm idTokenEncryptedResponseEnc)
Definition: RegisterRequest.java:592
String getState()
Definition: AuthorizationResponse.java:314
JwkResponse exec()
Definition: JwkClient.java:54
static Jwe parse(String encodedJwe, PrivateKey privateKey, byte[] sharedSymmetricKey)
Definition: Jwe.java:83
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
void setPrivateKey(PrivateKey privateKey)
Definition: UserInfoClient.java:195
void setRequestObjectEncryptionEnc(BlockEncryptionAlgorithm requestObjectEncryptionEnc)
Definition: RegisterRequest.java:704
Definition: JwtUtil.java:38
PrivateKey getPrivateKey(String alias)
Definition: OxAuthCryptoProvider.java:264
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
void setRequestObjectEncryptionAlg(KeyEncryptionAlgorithm requestObjectEncryptionAlg)
Definition: RegisterRequest.java:684
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
RS256
Definition: SignatureAlgorithm.java:26
A256CBC_PLUS_HS512
Definition: BlockEncryptionAlgorithm.java:15
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
void setRequest(T request)
Definition: BaseClient.java:68
void setUserInfoEncryptedResponseAlg(KeyEncryptionAlgorithm userInfoEncryptedResponseAlg)
Definition: RegisterRequest.java:628
void setIdTokenEncryptedResponseAlg(KeyEncryptionAlgorithm idTokenEncryptedResponseAlg)
Definition: RegisterRequest.java:574
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
Definition: Jwe.java:19
Definition: JwkResponse.java:27
Definition: BlockEncryptionAlgorithm.java:12
RSA1_5
Definition: KeyEncryptionAlgorithm.java:14
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
static JSONObject getJSONWebKeys(String jwksUri)
Definition: JwtUtil.java:203
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
String getKeyId(SignatureAlgorithm signatureAlgorithm)
Definition: JwkResponse.java:112
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimAlgRSAOAEPEncA256GCM()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimAlgRSAOAEPEncA256GCM ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientKeyId,
final String  clientJwksUri,
final String  sectorIdentifierUri 
) throws Exception
inline
2825  {
2826  showTitle("authorizationRequestObjectWithMultivaluedClaimAlgRSAOAEPEncA256GCM");
2827 
2828  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
2829 
2830  // 1. Register client
2831  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
2832  StringUtils.spaceSeparatedToList(redirectUris));
2833  registerRequest.setResponseTypes(responseTypes);
2834  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
2835  registerRequest.setJwksUri(clientJwksUri);
2842  registerRequest.setClaims(Arrays.asList("member_of"));
2843 
2844  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
2845  registerClient.setRequest(registerRequest);
2846  RegisterResponse registerResponse = registerClient.exec();
2847 
2848  showClient(registerClient);
2849  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
2850  assertNotNull(registerResponse.getClientId());
2851  assertNotNull(registerResponse.getClientSecret());
2852  assertNotNull(registerResponse.getRegistrationAccessToken());
2853  assertNotNull(registerResponse.getClientIdIssuedAt());
2854  assertNotNull(registerResponse.getClientSecretExpiresAt());
2855 
2856  String clientId = registerResponse.getClientId();
2857 
2858  // 2. Choose encryption key
2859  JwkClient jwkClient = new JwkClient(jwksUri);
2860  JwkResponse jwkResponse = jwkClient.exec();
2861  String serverKeyId = jwkResponse.getKeyId(SignatureAlgorithm.RS256);
2862  assertNotNull(serverKeyId);
2863 
2864  // 3. Request authorization
2865  JSONObject jwks = JwtUtil.getJSONWebKeys(jwksUri);
2866  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
2867 
2868  List<String> scopes = Arrays.asList("openid");
2869  String nonce = UUID.randomUUID().toString();
2870  String state = UUID.randomUUID().toString();
2871 
2872  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2873  authorizationRequest.setState(state);
2874 
2875  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest,
2877  jwtAuthorizationRequest.setKeyId(serverKeyId);
2878  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
2879  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2880  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2881  String authJwt = jwtAuthorizationRequest.getEncodedJwt(jwks);
2882  authorizationRequest.setRequest(authJwt);
2883 
2884  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
2885  authorizeClient.setRequest(authorizationRequest);
2886 
2888  authorizationEndpoint, authorizationRequest, userId, userSecret);
2889 
2890  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2891  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2892  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2893  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2894  assertNotNull(authorizationResponse.getState(), "The state is null");
2895 
2896  String idToken = authorizationResponse.getIdToken();
2897  String accessToken = authorizationResponse.getAccessToken();
2898 
2899  // 4. Validate id_token
2900  PrivateKey privateKey = cryptoProvider.getPrivateKey(clientKeyId);
2901 
2902  Jwe jwe = Jwe.parse(idToken, privateKey, null);
2903  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2904  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2905  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2906  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2907  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2908  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2909  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2910  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2911  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2912  assertNotNull(jwe.getClaims().getClaimAsStringList("member_of"));
2913  assertTrue(jwe.getClaims().getClaimAsStringList("member_of").size() > 1);
2914 
2915  // 5. Request user info
2916  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
2917  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2918  userInfoClient.setRequest(userInfoRequest);
2919  userInfoClient.setPrivateKey(privateKey);
2920  UserInfoResponse userInfoResponse = userInfoClient.exec();
2921 
2922  showClient(userInfoClient);
2923  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2924  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2925  assertNotNull(userInfoResponse.getClaim("member_of"));
2926  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
2927  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
A256GCM
Definition: BlockEncryptionAlgorithm.java:17
void setIdTokenEncryptedResponseEnc(BlockEncryptionAlgorithm idTokenEncryptedResponseEnc)
Definition: RegisterRequest.java:592
String getState()
Definition: AuthorizationResponse.java:314
JwkResponse exec()
Definition: JwkClient.java:54
static Jwe parse(String encodedJwe, PrivateKey privateKey, byte[] sharedSymmetricKey)
Definition: Jwe.java:83
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
void setPrivateKey(PrivateKey privateKey)
Definition: UserInfoClient.java:195
void setRequestObjectEncryptionEnc(BlockEncryptionAlgorithm requestObjectEncryptionEnc)
Definition: RegisterRequest.java:704
Definition: JwtUtil.java:38
PrivateKey getPrivateKey(String alias)
Definition: OxAuthCryptoProvider.java:264
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
RSA_OAEP
Definition: KeyEncryptionAlgorithm.java:15
void setRequestObjectEncryptionAlg(KeyEncryptionAlgorithm requestObjectEncryptionAlg)
Definition: RegisterRequest.java:684
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
RS256
Definition: SignatureAlgorithm.java:26
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
void setRequest(T request)
Definition: BaseClient.java:68
void setUserInfoEncryptedResponseAlg(KeyEncryptionAlgorithm userInfoEncryptedResponseAlg)
Definition: RegisterRequest.java:628
void setIdTokenEncryptedResponseAlg(KeyEncryptionAlgorithm idTokenEncryptedResponseAlg)
Definition: RegisterRequest.java:574
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
Definition: Jwe.java:19
Definition: JwkResponse.java:27
Definition: BlockEncryptionAlgorithm.java:12
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
static JSONObject getJSONWebKeys(String jwksUri)
Definition: JwtUtil.java:203
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
String getKeyId(SignatureAlgorithm signatureAlgorithm)
Definition: JwkResponse.java:112
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimES256()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimES256 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri,
final String  keyId,
final String  clientJwksUri 
) throws Exception
inline
2092  {
2093  showTitle("authorizationRequestObjectWithMultivaluedClaimES256");
2094 
2095  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
2096 
2097  // 1. Register client
2098  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
2099  StringUtils.spaceSeparatedToList(redirectUris));
2100  registerRequest.setResponseTypes(responseTypes);
2101  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
2105  registerRequest.setJwksUri(clientJwksUri);
2106  registerRequest.setClaims(Arrays.asList("member_of"));
2107 
2108  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
2109  registerClient.setRequest(registerRequest);
2110  RegisterResponse registerResponse = registerClient.exec();
2111 
2112  showClient(registerClient);
2113  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
2114  assertNotNull(registerResponse.getClientId());
2115  assertNotNull(registerResponse.getClientSecret());
2116  assertNotNull(registerResponse.getRegistrationAccessToken());
2117  assertNotNull(registerResponse.getClientIdIssuedAt());
2118  assertNotNull(registerResponse.getClientSecretExpiresAt());
2119 
2120  String clientId = registerResponse.getClientId();
2121 
2122  // 2. Request authorization
2123  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
2124 
2125  List<String> scopes = Arrays.asList("openid");
2126  String nonce = UUID.randomUUID().toString();
2127  String state = UUID.randomUUID().toString();
2128 
2129  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2130  authorizationRequest.setState(state);
2131 
2132  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest, SignatureAlgorithm.ES256, cryptoProvider);
2133  jwtAuthorizationRequest.setKeyId(keyId);
2134  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
2135  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2136  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2137  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
2138  authorizationRequest.setRequest(authJwt);
2139 
2140  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
2141  authorizeClient.setRequest(authorizationRequest);
2142 
2144  authorizationEndpoint, authorizationRequest, userId, userSecret);
2145 
2146  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2147  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2148  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2149  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2150  assertNotNull(authorizationResponse.getState(), "The state is null");
2151 
2152  String idToken = authorizationResponse.getIdToken();
2153  String accessToken = authorizationResponse.getAccessToken();
2154 
2155  // 3. Validate id_token
2156  Jwt jwt = Jwt.parse(idToken);
2157  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2158  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2159  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2160  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2161  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2162  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2163  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2164  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2165  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2166  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
2167  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
2168 
2170  jwksUri,
2171  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
2172  ECDSASigner ecdsaSigner = new ECDSASigner(SignatureAlgorithm.ES256, publicKey);
2173 
2174  assertTrue(ecdsaSigner.validate(jwt));
2175 
2176  // 4. Request user info
2177  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
2178  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2179  userInfoClient.setRequest(userInfoRequest);
2180  userInfoClient.setJwksUri(jwksUri);
2181  UserInfoResponse userInfoResponse = userInfoClient.exec();
2182 
2183  showClient(userInfoClient);
2184  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2185  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2186  assertNotNull(userInfoResponse.getClaim("member_of"));
2187  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
2188  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
ES256
Definition: SignatureAlgorithm.java:29
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
void setRequestObjectSigningAlg(SignatureAlgorithm requestObjectSigningAlg)
Definition: RegisterRequest.java:664
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
static ECDSAPublicKey getECDSAPublicKey(String jwkSetUrl, String keyId)
Definition: JwkClient.java:114
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimES384()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimES384 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri,
final String  keyId,
final String  clientJwksUri 
) throws Exception
inline
2196  {
2197  showTitle("authorizationRequestObjectWithMultivaluedClaimES384");
2198 
2199  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
2200 
2201  // 1. Register client
2202  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
2203  StringUtils.spaceSeparatedToList(redirectUris));
2204  registerRequest.setResponseTypes(responseTypes);
2205  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
2209  registerRequest.setJwksUri(clientJwksUri);
2210  registerRequest.setClaims(Arrays.asList("member_of"));
2211 
2212  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
2213  registerClient.setRequest(registerRequest);
2214  RegisterResponse registerResponse = registerClient.exec();
2215 
2216  showClient(registerClient);
2217  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
2218  assertNotNull(registerResponse.getClientId());
2219  assertNotNull(registerResponse.getClientSecret());
2220  assertNotNull(registerResponse.getRegistrationAccessToken());
2221  assertNotNull(registerResponse.getClientIdIssuedAt());
2222  assertNotNull(registerResponse.getClientSecretExpiresAt());
2223 
2224  String clientId = registerResponse.getClientId();
2225 
2226  // 2. Request authorization
2227  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
2228 
2229  List<String> scopes = Arrays.asList("openid");
2230  String nonce = UUID.randomUUID().toString();
2231  String state = UUID.randomUUID().toString();
2232 
2233  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2234  authorizationRequest.setState(state);
2235 
2236  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest, SignatureAlgorithm.ES384, cryptoProvider);
2237  jwtAuthorizationRequest.setKeyId(keyId);
2238  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
2239  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2240  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2241  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
2242  authorizationRequest.setRequest(authJwt);
2243 
2244  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
2245  authorizeClient.setRequest(authorizationRequest);
2246 
2248  authorizationEndpoint, authorizationRequest, userId, userSecret);
2249 
2250  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2251  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2252  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2253  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2254  assertNotNull(authorizationResponse.getState(), "The state is null");
2255 
2256  String idToken = authorizationResponse.getIdToken();
2257  String accessToken = authorizationResponse.getAccessToken();
2258 
2259  // 3. Validate id_token
2260  Jwt jwt = Jwt.parse(idToken);
2261  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2262  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2263  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2264  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2265  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2266  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2267  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2268  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2269  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2270  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
2271  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
2272 
2274  jwksUri,
2275  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
2276  ECDSASigner ecdsaSigner = new ECDSASigner(SignatureAlgorithm.ES384, publicKey);
2277 
2278  assertTrue(ecdsaSigner.validate(jwt));
2279 
2280  // 4. Request user info
2281  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
2282  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2283  userInfoClient.setRequest(userInfoRequest);
2284  userInfoClient.setJwksUri(jwksUri);
2285  UserInfoResponse userInfoResponse = userInfoClient.exec();
2286 
2287  showClient(userInfoClient);
2288  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2289  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2290  assertNotNull(userInfoResponse.getClaim("member_of"));
2291  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
2292  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
ES384
Definition: SignatureAlgorithm.java:30
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
void setRequestObjectSigningAlg(SignatureAlgorithm requestObjectSigningAlg)
Definition: RegisterRequest.java:664
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
static ECDSAPublicKey getECDSAPublicKey(String jwkSetUrl, String keyId)
Definition: JwkClient.java:114
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimES512()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimES512 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri,
final String  keyId,
final String  clientJwksUri 
) throws Exception
inline
2300  {
2301  showTitle("authorizationRequestObjectWithMultivaluedClaimES512");
2302 
2303  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
2304 
2305  // 1. Register client
2306  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
2307  StringUtils.spaceSeparatedToList(redirectUris));
2308  registerRequest.setResponseTypes(responseTypes);
2309  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
2313  registerRequest.setJwksUri(clientJwksUri);
2314  registerRequest.setClaims(Arrays.asList("member_of"));
2315 
2316  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
2317  registerClient.setRequest(registerRequest);
2318  RegisterResponse registerResponse = registerClient.exec();
2319 
2320  showClient(registerClient);
2321  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
2322  assertNotNull(registerResponse.getClientId());
2323  assertNotNull(registerResponse.getClientSecret());
2324  assertNotNull(registerResponse.getRegistrationAccessToken());
2325  assertNotNull(registerResponse.getClientIdIssuedAt());
2326  assertNotNull(registerResponse.getClientSecretExpiresAt());
2327 
2328  String clientId = registerResponse.getClientId();
2329 
2330  // 2. Request authorization
2331  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
2332 
2333  List<String> scopes = Arrays.asList("openid");
2334  String nonce = UUID.randomUUID().toString();
2335  String state = UUID.randomUUID().toString();
2336 
2337  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2338  authorizationRequest.setState(state);
2339 
2340  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest, SignatureAlgorithm.ES512, cryptoProvider);
2341  jwtAuthorizationRequest.setKeyId(keyId);
2342  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
2343  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2344  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2345  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
2346  authorizationRequest.setRequest(authJwt);
2347 
2348  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
2349  authorizeClient.setRequest(authorizationRequest);
2350 
2352  authorizationEndpoint, authorizationRequest, userId, userSecret);
2353 
2354  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2355  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2356  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2357  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2358  assertNotNull(authorizationResponse.getState(), "The state is null");
2359 
2360  String idToken = authorizationResponse.getIdToken();
2361  String accessToken = authorizationResponse.getAccessToken();
2362 
2363  // 3. Validate id_token
2364  Jwt jwt = Jwt.parse(idToken);
2365  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2366  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2367  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2368  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2369  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2370  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2371  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2372  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2373  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2374  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
2375  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
2376 
2378  jwksUri,
2379  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
2380  ECDSASigner ecdsaSigner = new ECDSASigner(SignatureAlgorithm.ES512, publicKey);
2381 
2382  assertTrue(ecdsaSigner.validate(jwt));
2383 
2384  // 4. Request user info
2385  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
2386  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2387  userInfoClient.setRequest(userInfoRequest);
2388  userInfoClient.setJwksUri(jwksUri);
2389  UserInfoResponse userInfoResponse = userInfoClient.exec();
2390 
2391  showClient(userInfoClient);
2392  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2393  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2394  assertNotNull(userInfoResponse.getClaim("member_of"));
2395  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
2396  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
ES512
Definition: SignatureAlgorithm.java:31
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
void setRequestObjectSigningAlg(SignatureAlgorithm requestObjectSigningAlg)
Definition: RegisterRequest.java:664
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
static ECDSAPublicKey getECDSAPublicKey(String jwkSetUrl, String keyId)
Definition: JwkClient.java:114
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimHS256()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimHS256 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri 
) throws Exception
inline
1485  {
1486  showTitle("authorizationRequestObjectWithMultivaluedClaimHS256");
1487 
1488  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
1489 
1490  // 1. Register client
1491  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1492  StringUtils.spaceSeparatedToList(redirectUris));
1493  registerRequest.setResponseTypes(responseTypes);
1494  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1498  registerRequest.setClaims(Arrays.asList("member_of"));
1499 
1500  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1501  registerClient.setRequest(registerRequest);
1502  RegisterResponse registerResponse = registerClient.exec();
1503 
1504  showClient(registerClient);
1505  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1506  assertNotNull(registerResponse.getClientId());
1507  assertNotNull(registerResponse.getClientSecret());
1508  assertNotNull(registerResponse.getRegistrationAccessToken());
1509  assertNotNull(registerResponse.getClientIdIssuedAt());
1510  assertNotNull(registerResponse.getClientSecretExpiresAt());
1511 
1512  String clientId = registerResponse.getClientId();
1513  String clientSecret = registerResponse.getClientSecret();
1514 
1515  // 2. Request authorization
1516  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
1517 
1518  List<String> scopes = Arrays.asList("openid");
1519  String nonce = UUID.randomUUID().toString();
1520  String state = UUID.randomUUID().toString();
1521 
1522  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1523  authorizationRequest.setState(state);
1524 
1525  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest, SignatureAlgorithm.HS256, clientSecret, cryptoProvider);
1526  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
1527  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1528  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1529  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1530  authorizationRequest.setRequest(authJwt);
1531 
1532  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
1533  authorizeClient.setRequest(authorizationRequest);
1534 
1536  authorizationEndpoint, authorizationRequest, userId, userSecret);
1537 
1538  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1539  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1540  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1541  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1542  assertNotNull(authorizationResponse.getState(), "The state is null");
1543 
1544  String idToken = authorizationResponse.getIdToken();
1545  String accessToken = authorizationResponse.getAccessToken();
1546 
1547  // 3. Validate id_token
1548  Jwt jwt = Jwt.parse(idToken);
1549  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1550  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1551  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1552  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1553  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1554  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1555  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1556  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1557  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1558  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
1559  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
1560 
1561  HMACSigner hmacSigner = new HMACSigner(SignatureAlgorithm.HS256, clientSecret);
1562  assertTrue(hmacSigner.validate(jwt));
1563 
1564  // 4. Request user info
1565  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
1566  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1567  userInfoClient.setRequest(userInfoRequest);
1568  userInfoClient.setSharedKey(clientSecret);
1569  UserInfoResponse userInfoResponse = userInfoClient.exec();
1570 
1571  showClient(userInfoClient);
1572  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1573  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1574  assertNotNull(userInfoResponse.getClaim("member_of"));
1575  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
1576  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
HS256
Definition: SignatureAlgorithm.java:23
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
void setRequestObjectSigningAlg(SignatureAlgorithm requestObjectSigningAlg)
Definition: RegisterRequest.java:664
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
void setSharedKey(String sharedKey)
Definition: UserInfoClient.java:191
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimHS384()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimHS384 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri 
) throws Exception
inline
1583  {
1584  showTitle("authorizationRequestObjectWithMultivaluedClaimHS384");
1585 
1586  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
1587 
1588  // 1. Register client
1589  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1590  StringUtils.spaceSeparatedToList(redirectUris));
1591  registerRequest.setResponseTypes(responseTypes);
1592  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1596  registerRequest.setClaims(Arrays.asList("member_of"));
1597 
1598  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1599  registerClient.setRequest(registerRequest);
1600  RegisterResponse registerResponse = registerClient.exec();
1601 
1602  showClient(registerClient);
1603  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1604  assertNotNull(registerResponse.getClientId());
1605  assertNotNull(registerResponse.getClientSecret());
1606  assertNotNull(registerResponse.getRegistrationAccessToken());
1607  assertNotNull(registerResponse.getClientIdIssuedAt());
1608  assertNotNull(registerResponse.getClientSecretExpiresAt());
1609 
1610  String clientId = registerResponse.getClientId();
1611  String clientSecret = registerResponse.getClientSecret();
1612 
1613  // 2. Request authorization
1614  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
1615 
1616  List<String> scopes = Arrays.asList("openid");
1617  String nonce = UUID.randomUUID().toString();
1618  String state = UUID.randomUUID().toString();
1619 
1620  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1621  authorizationRequest.setState(state);
1622 
1623  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest, SignatureAlgorithm.HS384, clientSecret, cryptoProvider);
1624  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
1625  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1626  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1627  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1628  authorizationRequest.setRequest(authJwt);
1629 
1630  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
1631  authorizeClient.setRequest(authorizationRequest);
1632 
1634  authorizationEndpoint, authorizationRequest, userId, userSecret);
1635 
1636  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1637  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1638  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1639  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1640  assertNotNull(authorizationResponse.getState(), "The state is null");
1641 
1642  String idToken = authorizationResponse.getIdToken();
1643  String accessToken = authorizationResponse.getAccessToken();
1644 
1645  // 3. Validate id_token
1646  Jwt jwt = Jwt.parse(idToken);
1647  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1648  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1649  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1650  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1651  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1652  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1653  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1654  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1655  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1656  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
1657  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
1658 
1659  HMACSigner hmacSigner = new HMACSigner(SignatureAlgorithm.HS384, clientSecret);
1660  assertTrue(hmacSigner.validate(jwt));
1661 
1662  // 4. Request user info
1663  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
1664  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1665  userInfoClient.setRequest(userInfoRequest);
1666  userInfoClient.setSharedKey(clientSecret);
1667  UserInfoResponse userInfoResponse = userInfoClient.exec();
1668 
1669  showClient(userInfoClient);
1670  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1671  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1672  assertNotNull(userInfoResponse.getClaim("member_of"));
1673  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
1674  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
void setRequestObjectSigningAlg(SignatureAlgorithm requestObjectSigningAlg)
Definition: RegisterRequest.java:664
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
void setSharedKey(String sharedKey)
Definition: UserInfoClient.java:191
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
HS384
Definition: SignatureAlgorithm.java:24
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimHS512()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimHS512 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri 
) throws Exception
inline
1681  {
1682  showTitle("authorizationRequestObjectWithMultivaluedClaimHS512");
1683 
1684  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
1685 
1686  // 1. Register client
1687  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1688  StringUtils.spaceSeparatedToList(redirectUris));
1689  registerRequest.setResponseTypes(responseTypes);
1690  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1694  registerRequest.setClaims(Arrays.asList("member_of"));
1695 
1696  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1697  registerClient.setRequest(registerRequest);
1698  RegisterResponse registerResponse = registerClient.exec();
1699 
1700  showClient(registerClient);
1701  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1702  assertNotNull(registerResponse.getClientId());
1703  assertNotNull(registerResponse.getClientSecret());
1704  assertNotNull(registerResponse.getRegistrationAccessToken());
1705  assertNotNull(registerResponse.getClientIdIssuedAt());
1706  assertNotNull(registerResponse.getClientSecretExpiresAt());
1707 
1708  String clientId = registerResponse.getClientId();
1709  String clientSecret = registerResponse.getClientSecret();
1710 
1711  // 2. Request authorization
1712  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
1713 
1714  List<String> scopes = Arrays.asList("openid");
1715  String nonce = UUID.randomUUID().toString();
1716  String state = UUID.randomUUID().toString();
1717 
1718  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1719  authorizationRequest.setState(state);
1720 
1721  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest, SignatureAlgorithm.HS512, clientSecret, cryptoProvider);
1722  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
1723  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1724  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1725  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1726  authorizationRequest.setRequest(authJwt);
1727 
1728  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
1729  authorizeClient.setRequest(authorizationRequest);
1730 
1732  authorizationEndpoint, authorizationRequest, userId, userSecret);
1733 
1734  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1735  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1736  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1737  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1738  assertNotNull(authorizationResponse.getState(), "The state is null");
1739 
1740  String idToken = authorizationResponse.getIdToken();
1741  String accessToken = authorizationResponse.getAccessToken();
1742 
1743  // 3. Validate id_token
1744  Jwt jwt = Jwt.parse(idToken);
1745  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1746  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1747  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1748  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1749  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1750  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1751  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1752  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1753  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1754  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
1755  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
1756 
1757  HMACSigner hmacSigner = new HMACSigner(SignatureAlgorithm.HS512, clientSecret);
1758  assertTrue(hmacSigner.validate(jwt));
1759 
1760  // 4. Request user info
1761  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
1762  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1763  userInfoClient.setRequest(userInfoRequest);
1764  userInfoClient.setSharedKey(clientSecret);
1765  UserInfoResponse userInfoResponse = userInfoClient.exec();
1766 
1767  showClient(userInfoClient);
1768  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1769  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1770  assertNotNull(userInfoResponse.getClaim("member_of"));
1771  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
1772  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
void setRequestObjectSigningAlg(SignatureAlgorithm requestObjectSigningAlg)
Definition: RegisterRequest.java:664
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
HS512
Definition: SignatureAlgorithm.java:25
void setSharedKey(String sharedKey)
Definition: UserInfoClient.java:191
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimNone()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimNone ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
1389  {
1390  showTitle("authorizationRequestObjectWithMultivaluedClaimNone");
1391 
1392  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
1393 
1394  // 1. Register client
1395  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1396  StringUtils.spaceSeparatedToList(redirectUris));
1397  registerRequest.setResponseTypes(responseTypes);
1398  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1402  registerRequest.setClaims(Arrays.asList("member_of"));
1403 
1404  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1405  registerClient.setRequest(registerRequest);
1406  RegisterResponse registerResponse = registerClient.exec();
1407 
1408  showClient(registerClient);
1409  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1410  assertNotNull(registerResponse.getClientId());
1411  assertNotNull(registerResponse.getClientSecret());
1412  assertNotNull(registerResponse.getRegistrationAccessToken());
1413  assertNotNull(registerResponse.getClientIdIssuedAt());
1414  assertNotNull(registerResponse.getClientSecretExpiresAt());
1415 
1416  String clientId = registerResponse.getClientId();
1417 
1418  // 2. Request authorization
1419  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider();
1420 
1421  List<String> scopes = Arrays.asList("openid");
1422  String nonce = UUID.randomUUID().toString();
1423  String state = UUID.randomUUID().toString();
1424 
1425  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1426  authorizationRequest.setState(state);
1427 
1428  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest, SignatureAlgorithm.NONE, null, cryptoProvider);
1429  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
1430  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1431  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1432  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1433  authorizationRequest.setRequest(authJwt);
1434 
1435  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
1436  authorizeClient.setRequest(authorizationRequest);
1437 
1439  authorizationEndpoint, authorizationRequest, userId, userSecret);
1440 
1441  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1442  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1443  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1444  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1445  assertNotNull(authorizationResponse.getState(), "The state is null");
1446 
1447  String idToken = authorizationResponse.getIdToken();
1448  String accessToken = authorizationResponse.getAccessToken();
1449 
1450  // 3. Validate id_token
1451  Jwt jwt = Jwt.parse(idToken);
1452  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1453  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1454  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1455  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1456  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1457  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1458  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1459  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1460  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1461  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
1462  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
1463 
1464  PlainTextSignature signer = new PlainTextSignature();
1465  assertTrue(signer.validate(jwt));
1466 
1467  // 4. Request user info
1468  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
1469  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1470  userInfoClient.setRequest(userInfoRequest);
1471  UserInfoResponse userInfoResponse = userInfoClient.exec();
1472 
1473  showClient(userInfoClient);
1474  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1475  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1476  assertNotNull(userInfoResponse.getClaim("member_of"));
1477  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
1478  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
void setRequestObjectSigningAlg(SignatureAlgorithm requestObjectSigningAlg)
Definition: RegisterRequest.java:664
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
NONE
Definition: SignatureAlgorithm.java:22
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimRS256()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimRS256 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri,
final String  keyId,
final String  clientJwksUri 
) throws Exception
inline
1780  {
1781  showTitle("authorizationRequestObjectWithMultivaluedClaimRS256");
1782 
1783  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
1784 
1785  // 1. Register client
1786  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1787  StringUtils.spaceSeparatedToList(redirectUris));
1788  registerRequest.setResponseTypes(responseTypes);
1789  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1793  registerRequest.setJwksUri(clientJwksUri);
1794  registerRequest.setClaims(Arrays.asList("member_of"));
1795 
1796  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1797  registerClient.setRequest(registerRequest);
1798  RegisterResponse registerResponse = registerClient.exec();
1799 
1800  showClient(registerClient);
1801  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1802  assertNotNull(registerResponse.getClientId());
1803  assertNotNull(registerResponse.getClientSecret());
1804  assertNotNull(registerResponse.getRegistrationAccessToken());
1805  assertNotNull(registerResponse.getClientIdIssuedAt());
1806  assertNotNull(registerResponse.getClientSecretExpiresAt());
1807 
1808  String clientId = registerResponse.getClientId();
1809 
1810  // 2. Request authorization
1811  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
1812 
1813  List<String> scopes = Arrays.asList("openid");
1814  String nonce = UUID.randomUUID().toString();
1815  String state = UUID.randomUUID().toString();
1816 
1817  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1818  authorizationRequest.setState(state);
1819 
1820  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest, SignatureAlgorithm.RS256, cryptoProvider);
1821  jwtAuthorizationRequest.setKeyId(keyId);
1822  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
1823  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1824  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1825  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1826  authorizationRequest.setRequest(authJwt);
1827 
1828  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
1829  authorizeClient.setRequest(authorizationRequest);
1830 
1832  authorizationEndpoint, authorizationRequest, userId, userSecret);
1833 
1834  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1835  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1836  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1837  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1838  assertNotNull(authorizationResponse.getState(), "The state is null");
1839 
1840  String idToken = authorizationResponse.getIdToken();
1841  String accessToken = authorizationResponse.getAccessToken();
1842 
1843  // 3. Validate id_token
1844  Jwt jwt = Jwt.parse(idToken);
1845  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1846  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1847  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1848  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1849  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1850  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1851  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1852  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1853  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1854  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
1855  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
1856 
1858  jwksUri,
1859  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
1860  RSASigner rsaSigner = new RSASigner(SignatureAlgorithm.RS256, publicKey);
1861 
1862  assertTrue(rsaSigner.validate(jwt));
1863 
1864  // 4. Request user info
1865  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
1866  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1867  userInfoClient.setRequest(userInfoRequest);
1868  userInfoClient.setJwksUri(jwksUri);
1869  UserInfoResponse userInfoResponse = userInfoClient.exec();
1870 
1871  showClient(userInfoClient);
1872  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1873  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1874  assertNotNull(userInfoResponse.getClaim("member_of"));
1875  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
1876  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
void setRequestObjectSigningAlg(SignatureAlgorithm requestObjectSigningAlg)
Definition: RegisterRequest.java:664
RS256
Definition: SignatureAlgorithm.java:26
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
static RSAPublicKey getRSAPublicKey(String jwkSetUri, String keyId)
Definition: JwkClient.java:94
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimRS384()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimRS384 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri,
final String  keyId,
final String  clientJwksUri 
) throws Exception
inline
1884  {
1885  showTitle("authorizationRequestObjectWithMultivaluedClaimRS384");
1886 
1887  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
1888 
1889  // 1. Register client
1890  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1891  StringUtils.spaceSeparatedToList(redirectUris));
1892  registerRequest.setResponseTypes(responseTypes);
1893  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1897  registerRequest.setJwksUri(clientJwksUri);
1898  registerRequest.setClaims(Arrays.asList("member_of"));
1899 
1900  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1901  registerClient.setRequest(registerRequest);
1902  RegisterResponse registerResponse = registerClient.exec();
1903 
1904  showClient(registerClient);
1905  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1906  assertNotNull(registerResponse.getClientId());
1907  assertNotNull(registerResponse.getClientSecret());
1908  assertNotNull(registerResponse.getRegistrationAccessToken());
1909  assertNotNull(registerResponse.getClientIdIssuedAt());
1910  assertNotNull(registerResponse.getClientSecretExpiresAt());
1911 
1912  String clientId = registerResponse.getClientId();
1913 
1914  // 2. Request authorization
1915  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
1916 
1917  List<String> scopes = Arrays.asList("openid");
1918  String nonce = UUID.randomUUID().toString();
1919  String state = UUID.randomUUID().toString();
1920 
1921  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1922  authorizationRequest.setState(state);
1923 
1924  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest, SignatureAlgorithm.RS384, cryptoProvider);
1925  jwtAuthorizationRequest.setKeyId(keyId);
1926  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
1927  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1928  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
1929  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1930  authorizationRequest.setRequest(authJwt);
1931 
1932  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
1933  authorizeClient.setRequest(authorizationRequest);
1934 
1936  authorizationEndpoint, authorizationRequest, userId, userSecret);
1937 
1938  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1939  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1940  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1941  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1942  assertNotNull(authorizationResponse.getState(), "The state is null");
1943 
1944  String idToken = authorizationResponse.getIdToken();
1945  String accessToken = authorizationResponse.getAccessToken();
1946 
1947  // 3. Validate id_token
1948  Jwt jwt = Jwt.parse(idToken);
1949  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1950  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1951  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1952  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1953  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1954  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1955  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1956  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1957  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1958  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
1959  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
1960 
1962  jwksUri,
1963  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
1964  RSASigner rsaSigner = new RSASigner(SignatureAlgorithm.RS384, publicKey);
1965 
1966  assertTrue(rsaSigner.validate(jwt));
1967 
1968  // 4. Request user info
1969  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
1970  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1971  userInfoClient.setRequest(userInfoRequest);
1972  userInfoClient.setJwksUri(jwksUri);
1973  UserInfoResponse userInfoResponse = userInfoClient.exec();
1974 
1975  showClient(userInfoClient);
1976  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1977  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1978  assertNotNull(userInfoResponse.getClaim("member_of"));
1979  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
1980  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
String jwksUri
Definition: BaseTest.java:80
RS384
Definition: SignatureAlgorithm.java:27
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
void setRequestObjectSigningAlg(SignatureAlgorithm requestObjectSigningAlg)
Definition: RegisterRequest.java:664
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
static RSAPublicKey getRSAPublicKey(String jwkSetUri, String keyId)
Definition: JwkClient.java:94
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestObjectWithMultivaluedClaimRS512()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestObjectWithMultivaluedClaimRS512 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri,
final String  keyId,
final String  clientJwksUri 
) throws Exception
inline
1988  {
1989  showTitle("authorizationRequestObjectWithMultivaluedClaimRS512");
1990 
1991  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
1992 
1993  // 1. Register client
1994  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1995  StringUtils.spaceSeparatedToList(redirectUris));
1996  registerRequest.setResponseTypes(responseTypes);
1997  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
2001  registerRequest.setJwksUri(clientJwksUri);
2002  registerRequest.setClaims(Arrays.asList("member_of"));
2003 
2004  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
2005  registerClient.setRequest(registerRequest);
2006  RegisterResponse registerResponse = registerClient.exec();
2007 
2008  showClient(registerClient);
2009  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
2010  assertNotNull(registerResponse.getClientId());
2011  assertNotNull(registerResponse.getClientSecret());
2012  assertNotNull(registerResponse.getRegistrationAccessToken());
2013  assertNotNull(registerResponse.getClientIdIssuedAt());
2014  assertNotNull(registerResponse.getClientSecretExpiresAt());
2015 
2016  String clientId = registerResponse.getClientId();
2017 
2018  // 2. Request authorization
2019  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
2020 
2021  List<String> scopes = Arrays.asList("openid");
2022  String nonce = UUID.randomUUID().toString();
2023  String state = UUID.randomUUID().toString();
2024 
2025  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2026  authorizationRequest.setState(state);
2027 
2028  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest, SignatureAlgorithm.RS512, cryptoProvider);
2029  jwtAuthorizationRequest.setKeyId(keyId);
2030  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createEssential(true)));
2031  jwtAuthorizationRequest.addIdTokenClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2032  jwtAuthorizationRequest.addUserInfoClaim(new Claim("member_of", ClaimValue.createEssential(true)));
2033  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
2034  authorizationRequest.setRequest(authJwt);
2035 
2036  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
2037  authorizeClient.setRequest(authorizationRequest);
2038 
2040  authorizationEndpoint, authorizationRequest, userId, userSecret);
2041 
2042  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2043  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2044  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2045  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2046  assertNotNull(authorizationResponse.getState(), "The state is null");
2047 
2048  String idToken = authorizationResponse.getIdToken();
2049  String accessToken = authorizationResponse.getAccessToken();
2050 
2051  // 3. Validate id_token
2052  Jwt jwt = Jwt.parse(idToken);
2053  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2054  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2055  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2056  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2057  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2058  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2059  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2060  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2061  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2062  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
2063  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
2064 
2066  jwksUri,
2067  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
2068  RSASigner rsaSigner = new RSASigner(SignatureAlgorithm.RS512, publicKey);
2069 
2070  assertTrue(rsaSigner.validate(jwt));
2071 
2072  // 4. Request user info
2073  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
2074  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2075  userInfoClient.setRequest(userInfoRequest);
2076  userInfoClient.setJwksUri(jwksUri);
2077  UserInfoResponse userInfoResponse = userInfoClient.exec();
2078 
2079  showClient(userInfoClient);
2080  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2081  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2082  assertNotNull(userInfoResponse.getClaim("member_of"));
2083  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
2084  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
void setClaims(List< String > claims)
Definition: RegisterRequest.java:903
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
void setRequestObjectSigningAlg(SignatureAlgorithm requestObjectSigningAlg)
Definition: RegisterRequest.java:664
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
RS512
Definition: SignatureAlgorithm.java:28
static RSAPublicKey getRSAPublicKey(String jwkSetUri, String keyId)
Definition: JwkClient.java:94
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
void setRequest(String request)
Definition: AuthorizationRequest.java:361
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimAlgA128KWEncA128GCM()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimAlgA128KWEncA128GCM ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
941  {
942  showTitle("authorizationRequestWithMultivaluedClaimAlgA128KWEncA128GCM");
943 
944  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
945 
946  // 1. Register client
947  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
948  StringUtils.spaceSeparatedToList(redirectUris));
949  registerRequest.setResponseTypes(responseTypes);
950  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
955  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
956 
957  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
958  registerClient.setRequest(registerRequest);
959  RegisterResponse registerResponse = registerClient.exec();
960 
961  showClient(registerClient);
962  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
963  assertNotNull(registerResponse.getClientId());
964  assertNotNull(registerResponse.getClientSecret());
965  assertNotNull(registerResponse.getRegistrationAccessToken());
966  assertNotNull(registerResponse.getClientIdIssuedAt());
967  assertNotNull(registerResponse.getClientSecretExpiresAt());
968 
969  String clientId = registerResponse.getClientId();
970  String clientSecret = registerResponse.getClientSecret();
971 
972  // 2. Request authorization
973  List<String> scopes = Arrays.asList("openid", "test");
974  String nonce = UUID.randomUUID().toString();
975  String state = UUID.randomUUID().toString();
976 
977  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
978  authorizationRequest.setState(state);
979 
981  authorizeClient.setRequest(authorizationRequest);
982 
984  authorizationEndpoint, authorizationRequest, userId, userSecret);
985 
986  assertNotNull(authorizationResponse.getLocation(), "The location is null");
987  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
988  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
989  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
990  assertNotNull(authorizationResponse.getState(), "The state is null");
991 
992  String idToken = authorizationResponse.getIdToken();
993  String accessToken = authorizationResponse.getAccessToken();
994 
995  // 3. Validate id_token
996  Jwe jwe = Jwe.parse(idToken, null, clientSecret.getBytes(Util.UTF8_STRING_ENCODING));
997  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
998  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
999  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1000  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1001  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1002  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1003  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1004  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1005  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1006  assertNotNull(jwe.getClaims().getClaimAsStringList("member_of"));
1007  assertTrue(jwe.getClaims().getClaimAsStringList("member_of").size() > 1);
1008 
1009  // 4. Request user info
1010  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
1011  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1012  userInfoClient.setRequest(userInfoRequest);
1013  userInfoClient.setSharedKey(clientSecret);
1014  UserInfoResponse userInfoResponse = userInfoClient.exec();
1015 
1016  showClient(userInfoClient);
1017  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1018  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1019  assertNotNull(userInfoResponse.getClaim("member_of"));
1020  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
1021  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
Definition: RegisterResponse.java:34
void setIdTokenEncryptedResponseEnc(BlockEncryptionAlgorithm idTokenEncryptedResponseEnc)
Definition: RegisterRequest.java:592
String getState()
Definition: AuthorizationResponse.java:314
static Jwe parse(String encodedJwe, PrivateKey privateKey, byte[] sharedSymmetricKey)
Definition: Jwe.java:83
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
static final String UTF8_STRING_ENCODING
Definition: Util.java:44
A128KW
Definition: KeyEncryptionAlgorithm.java:16
void setRequest(T request)
Definition: BaseClient.java:68
void setUserInfoEncryptedResponseAlg(KeyEncryptionAlgorithm userInfoEncryptedResponseAlg)
Definition: RegisterRequest.java:628
void setIdTokenEncryptedResponseAlg(KeyEncryptionAlgorithm idTokenEncryptedResponseAlg)
Definition: RegisterRequest.java:574
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
Definition: Jwe.java:19
Definition: BlockEncryptionAlgorithm.java:12
A128GCM
Definition: BlockEncryptionAlgorithm.java:16
void setSharedKey(String sharedKey)
Definition: UserInfoClient.java:191
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Definition: Util.java:40
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimAlgA256KWEncA256GCM()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimAlgA256KWEncA256GCM ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
1027  {
1028  showTitle("authorizationRequestWithMultivaluedClaimAlgA256KWEncA256GCM");
1029 
1030  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
1031 
1032  // 1. Register client
1033  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1034  StringUtils.spaceSeparatedToList(redirectUris));
1035  registerRequest.setResponseTypes(responseTypes);
1036  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1041  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
1042 
1043  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1044  registerClient.setRequest(registerRequest);
1045  RegisterResponse registerResponse = registerClient.exec();
1046 
1047  showClient(registerClient);
1048  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1049  assertNotNull(registerResponse.getClientId());
1050  assertNotNull(registerResponse.getClientSecret());
1051  assertNotNull(registerResponse.getRegistrationAccessToken());
1052  assertNotNull(registerResponse.getClientIdIssuedAt());
1053  assertNotNull(registerResponse.getClientSecretExpiresAt());
1054 
1055  String clientId = registerResponse.getClientId();
1056  String clientSecret = registerResponse.getClientSecret();
1057 
1058  // 2. Request authorization
1059  List<String> scopes = Arrays.asList("openid", "test");
1060  String nonce = UUID.randomUUID().toString();
1061  String state = UUID.randomUUID().toString();
1062 
1063  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1064  authorizationRequest.setState(state);
1065 
1066  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
1067  authorizeClient.setRequest(authorizationRequest);
1068 
1070  authorizationEndpoint, authorizationRequest, userId, userSecret);
1071 
1072  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1073  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1074  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1075  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1076  assertNotNull(authorizationResponse.getState(), "The state is null");
1077 
1078  String idToken = authorizationResponse.getIdToken();
1079  String accessToken = authorizationResponse.getAccessToken();
1080 
1081  // 3. Validate id_token
1082  Jwe jwe = Jwe.parse(idToken, null, clientSecret.getBytes(Util.UTF8_STRING_ENCODING));
1083  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1084  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1085  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1086  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1087  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1088  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1089  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1090  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1091  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1092  assertNotNull(jwe.getClaims().getClaimAsStringList("member_of"));
1093  assertTrue(jwe.getClaims().getClaimAsStringList("member_of").size() > 1);
1094 
1095  // 4. Request user info
1096  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
1097  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1098  userInfoClient.setRequest(userInfoRequest);
1099  userInfoClient.setSharedKey(clientSecret);
1100  UserInfoResponse userInfoResponse = userInfoClient.exec();
1101 
1102  showClient(userInfoClient);
1103  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1104  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1105  assertNotNull(userInfoResponse.getClaim("member_of"));
1106  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
1107  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
Definition: RegisterResponse.java:34
A256GCM
Definition: BlockEncryptionAlgorithm.java:17
void setIdTokenEncryptedResponseEnc(BlockEncryptionAlgorithm idTokenEncryptedResponseEnc)
Definition: RegisterRequest.java:592
String getState()
Definition: AuthorizationResponse.java:314
static Jwe parse(String encodedJwe, PrivateKey privateKey, byte[] sharedSymmetricKey)
Definition: Jwe.java:83
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
A256KW
Definition: KeyEncryptionAlgorithm.java:17
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
static final String UTF8_STRING_ENCODING
Definition: Util.java:44
void setRequest(T request)
Definition: BaseClient.java:68
void setUserInfoEncryptedResponseAlg(KeyEncryptionAlgorithm userInfoEncryptedResponseAlg)
Definition: RegisterRequest.java:628
void setIdTokenEncryptedResponseAlg(KeyEncryptionAlgorithm idTokenEncryptedResponseAlg)
Definition: RegisterRequest.java:574
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
Definition: Jwe.java:19
Definition: BlockEncryptionAlgorithm.java:12
void setSharedKey(String sharedKey)
Definition: UserInfoClient.java:191
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Definition: Util.java:40
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimAlgRSA15EncA128CBCPLUSHS256()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimAlgRSA15EncA128CBCPLUSHS256 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  clientJwksUri,
final String  keyId,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri 
) throws Exception
inline
1116  {
1117  showTitle("authorizationRequestWithMultivaluedClaimAlgRSA15EncA128CBCPLUSHS256");
1118 
1119  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
1120 
1121  // 1. Register client
1122  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1123  StringUtils.spaceSeparatedToList(redirectUris));
1124  registerRequest.setResponseTypes(responseTypes);
1125  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1126  registerRequest.setJwksUri(clientJwksUri);
1131  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
1132 
1133  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1134  registerClient.setRequest(registerRequest);
1135  RegisterResponse registerResponse = registerClient.exec();
1136 
1137  showClient(registerClient);
1138  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1139  assertNotNull(registerResponse.getClientId());
1140  assertNotNull(registerResponse.getClientSecret());
1141  assertNotNull(registerResponse.getRegistrationAccessToken());
1142  assertNotNull(registerResponse.getClientIdIssuedAt());
1143  assertNotNull(registerResponse.getClientSecretExpiresAt());
1144 
1145  String clientId = registerResponse.getClientId();
1146 
1147  // 2. Request authorization
1148  List<String> scopes = Arrays.asList("openid", "test");
1149  String nonce = UUID.randomUUID().toString();
1150  String state = UUID.randomUUID().toString();
1151 
1152  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1153  authorizationRequest.setState(state);
1154 
1155  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
1156  authorizeClient.setRequest(authorizationRequest);
1157 
1159  authorizationEndpoint, authorizationRequest, userId, userSecret);
1160 
1161  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1162  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1163  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1164  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1165  assertNotNull(authorizationResponse.getState(), "The state is null");
1166 
1167  String idToken = authorizationResponse.getIdToken();
1168  String accessToken = authorizationResponse.getAccessToken();
1169 
1170  // 3. Validate id_token
1171  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, null);
1172  PrivateKey privateKey = cryptoProvider.getPrivateKey(keyId);
1173 
1174  Jwe jwe = Jwe.parse(idToken, privateKey, null);
1175  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1176  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1177  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1178  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1179  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1180  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1181  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1182  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1183  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1184  assertNotNull(jwe.getClaims().getClaimAsStringList("member_of"));
1185  assertTrue(jwe.getClaims().getClaimAsStringList("member_of").size() > 1);
1186 
1187  // 4. Request user info
1188  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
1189  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1190  userInfoClient.setRequest(userInfoRequest);
1191  userInfoClient.setPrivateKey(privateKey);
1192  UserInfoResponse userInfoResponse = userInfoClient.exec();
1193 
1194  showClient(userInfoClient);
1195  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1196  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1197  assertNotNull(userInfoResponse.getClaim("member_of"));
1198  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
1199  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
A128CBC_PLUS_HS256
Definition: BlockEncryptionAlgorithm.java:14
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
Definition: RegisterResponse.java:34
void setIdTokenEncryptedResponseEnc(BlockEncryptionAlgorithm idTokenEncryptedResponseEnc)
Definition: RegisterRequest.java:592
String getState()
Definition: AuthorizationResponse.java:314
static Jwe parse(String encodedJwe, PrivateKey privateKey, byte[] sharedSymmetricKey)
Definition: Jwe.java:83
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
static void showClient(BaseClient client)
Definition: BaseTest.java:775
void setPrivateKey(PrivateKey privateKey)
Definition: UserInfoClient.java:195
PrivateKey getPrivateKey(String alias)
Definition: OxAuthCryptoProvider.java:264
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
void setRequest(T request)
Definition: BaseClient.java:68
void setUserInfoEncryptedResponseAlg(KeyEncryptionAlgorithm userInfoEncryptedResponseAlg)
Definition: RegisterRequest.java:628
void setIdTokenEncryptedResponseAlg(KeyEncryptionAlgorithm idTokenEncryptedResponseAlg)
Definition: RegisterRequest.java:574
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
Definition: Jwe.java:19
Definition: BlockEncryptionAlgorithm.java:12
RSA1_5
Definition: KeyEncryptionAlgorithm.java:14
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimAlgRSA15EncA256CBCPLUSHS512()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimAlgRSA15EncA256CBCPLUSHS512 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  clientJwksUri,
final String  keyId,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri 
) throws Exception
inline
1208  {
1209  showTitle("authorizationRequestWithMultivaluedClaimAlgRSA15EncA256CBCPLUSHS512");
1210 
1211  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
1212 
1213  // 1. Register client
1214  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1215  StringUtils.spaceSeparatedToList(redirectUris));
1216  registerRequest.setResponseTypes(responseTypes);
1217  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1218  registerRequest.setJwksUri(clientJwksUri);
1223  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
1224 
1225  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1226  registerClient.setRequest(registerRequest);
1227  RegisterResponse registerResponse = registerClient.exec();
1228 
1229  showClient(registerClient);
1230  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1231  assertNotNull(registerResponse.getClientId());
1232  assertNotNull(registerResponse.getClientSecret());
1233  assertNotNull(registerResponse.getRegistrationAccessToken());
1234  assertNotNull(registerResponse.getClientIdIssuedAt());
1235  assertNotNull(registerResponse.getClientSecretExpiresAt());
1236 
1237  String clientId = registerResponse.getClientId();
1238 
1239  // 2. Request authorization
1240  List<String> scopes = Arrays.asList("openid", "test");
1241  String nonce = UUID.randomUUID().toString();
1242  String state = UUID.randomUUID().toString();
1243 
1244  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1245  authorizationRequest.setState(state);
1246 
1247  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
1248  authorizeClient.setRequest(authorizationRequest);
1249 
1251  authorizationEndpoint, authorizationRequest, userId, userSecret);
1252 
1253  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1254  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1255  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1256  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1257  assertNotNull(authorizationResponse.getState(), "The state is null");
1258 
1259  String idToken = authorizationResponse.getIdToken();
1260  String accessToken = authorizationResponse.getAccessToken();
1261 
1262  // 3. Validate id_token
1263  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, null);
1264  PrivateKey privateKey = cryptoProvider.getPrivateKey(keyId);
1265 
1266  Jwe jwe = Jwe.parse(idToken, privateKey, null);
1267  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1268  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1269  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1270  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1271  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1272  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1273  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1274  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1275  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1276  assertNotNull(jwe.getClaims().getClaimAsStringList("member_of"));
1277  assertTrue(jwe.getClaims().getClaimAsStringList("member_of").size() > 1);
1278 
1279  // 4. Request user info
1280  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
1281  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1282  userInfoClient.setRequest(userInfoRequest);
1283  userInfoClient.setPrivateKey(privateKey);
1284  UserInfoResponse userInfoResponse = userInfoClient.exec();
1285 
1286  showClient(userInfoClient);
1287  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1288  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1289  assertNotNull(userInfoResponse.getClaim("member_of"));
1290  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
1291  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
Definition: RegisterResponse.java:34
void setIdTokenEncryptedResponseEnc(BlockEncryptionAlgorithm idTokenEncryptedResponseEnc)
Definition: RegisterRequest.java:592
String getState()
Definition: AuthorizationResponse.java:314
static Jwe parse(String encodedJwe, PrivateKey privateKey, byte[] sharedSymmetricKey)
Definition: Jwe.java:83
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
static void showClient(BaseClient client)
Definition: BaseTest.java:775
void setPrivateKey(PrivateKey privateKey)
Definition: UserInfoClient.java:195
PrivateKey getPrivateKey(String alias)
Definition: OxAuthCryptoProvider.java:264
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
A256CBC_PLUS_HS512
Definition: BlockEncryptionAlgorithm.java:15
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
void setRequest(T request)
Definition: BaseClient.java:68
void setUserInfoEncryptedResponseAlg(KeyEncryptionAlgorithm userInfoEncryptedResponseAlg)
Definition: RegisterRequest.java:628
void setIdTokenEncryptedResponseAlg(KeyEncryptionAlgorithm idTokenEncryptedResponseAlg)
Definition: RegisterRequest.java:574
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
Definition: Jwe.java:19
Definition: BlockEncryptionAlgorithm.java:12
RSA1_5
Definition: KeyEncryptionAlgorithm.java:14
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimAlgRSAOAEPEncA256GCM()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimAlgRSAOAEPEncA256GCM ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  clientJwksUri,
final String  keyId,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  sectorIdentifierUri 
) throws Exception
inline
1300  {
1301  showTitle("authorizationRequestWithMultivaluedClaimAlgRSAOAEPEncA256GCM");
1302 
1303  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
1304 
1305  // 1. Register client
1306  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1307  StringUtils.spaceSeparatedToList(redirectUris));
1308  registerRequest.setResponseTypes(responseTypes);
1309  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1310  registerRequest.setJwksUri(clientJwksUri);
1315  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
1316 
1317  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1318  registerClient.setRequest(registerRequest);
1319  RegisterResponse registerResponse = registerClient.exec();
1320 
1321  showClient(registerClient);
1322  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1323  assertNotNull(registerResponse.getClientId());
1324  assertNotNull(registerResponse.getClientSecret());
1325  assertNotNull(registerResponse.getRegistrationAccessToken());
1326  assertNotNull(registerResponse.getClientIdIssuedAt());
1327  assertNotNull(registerResponse.getClientSecretExpiresAt());
1328 
1329  String clientId = registerResponse.getClientId();
1330 
1331  // 2. Request authorization
1332  List<String> scopes = Arrays.asList("openid", "test");
1333  String nonce = UUID.randomUUID().toString();
1334  String state = UUID.randomUUID().toString();
1335 
1336  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1337  authorizationRequest.setState(state);
1338 
1339  AuthorizeClient authorizeClient = new AuthorizeClient(authorizationEndpoint);
1340  authorizeClient.setRequest(authorizationRequest);
1341 
1343  authorizationEndpoint, authorizationRequest, userId, userSecret);
1344 
1345  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1346  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1347  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1348  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1349  assertNotNull(authorizationResponse.getState(), "The state is null");
1350 
1351  String idToken = authorizationResponse.getIdToken();
1352  String accessToken = authorizationResponse.getAccessToken();
1353 
1354  // 3. Validate id_token
1355  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, null);
1356  PrivateKey privateKey = cryptoProvider.getPrivateKey(keyId);
1357 
1358  Jwe jwe = Jwe.parse(idToken, privateKey, null);
1359  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1360  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1361  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1362  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1363  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1364  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1365  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1366  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1367  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1368  assertNotNull(jwe.getClaims().getClaimAsStringList("member_of"));
1369  assertTrue(jwe.getClaims().getClaimAsStringList("member_of").size() > 1);
1370 
1371  // 4. Request user info
1372  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
1373  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1374  userInfoClient.setRequest(userInfoRequest);
1375  userInfoClient.setPrivateKey(privateKey);
1376  UserInfoResponse userInfoResponse = userInfoClient.exec();
1377 
1378  showClient(userInfoClient);
1379  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1380  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1381  assertNotNull(userInfoResponse.getClaim("member_of"));
1382  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
1383  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
Definition: RegisterResponse.java:34
A256GCM
Definition: BlockEncryptionAlgorithm.java:17
void setIdTokenEncryptedResponseEnc(BlockEncryptionAlgorithm idTokenEncryptedResponseEnc)
Definition: RegisterRequest.java:592
String getState()
Definition: AuthorizationResponse.java:314
static Jwe parse(String encodedJwe, PrivateKey privateKey, byte[] sharedSymmetricKey)
Definition: Jwe.java:83
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
static void showClient(BaseClient client)
Definition: BaseTest.java:775
void setPrivateKey(PrivateKey privateKey)
Definition: UserInfoClient.java:195
PrivateKey getPrivateKey(String alias)
Definition: OxAuthCryptoProvider.java:264
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
RSA_OAEP
Definition: KeyEncryptionAlgorithm.java:15
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
void setRequest(T request)
Definition: BaseClient.java:68
void setUserInfoEncryptedResponseAlg(KeyEncryptionAlgorithm userInfoEncryptedResponseAlg)
Definition: RegisterRequest.java:628
void setIdTokenEncryptedResponseAlg(KeyEncryptionAlgorithm idTokenEncryptedResponseAlg)
Definition: RegisterRequest.java:574
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
Definition: Jwe.java:19
Definition: BlockEncryptionAlgorithm.java:12
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
Definition: OxAuthCryptoProvider.java:62
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimES256()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimES256 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
671  {
672  showTitle("authorizationRequestWithMultivaluedClaimES256");
673 
674  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
675 
676  // 1. Register client
677  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
678  StringUtils.spaceSeparatedToList(redirectUris));
679  registerRequest.setResponseTypes(responseTypes);
680  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
683  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
684 
685  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
686  registerClient.setRequest(registerRequest);
687  RegisterResponse registerResponse = registerClient.exec();
688 
689  showClient(registerClient);
690  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
691  assertNotNull(registerResponse.getClientId());
692  assertNotNull(registerResponse.getClientSecret());
693  assertNotNull(registerResponse.getRegistrationAccessToken());
694  assertNotNull(registerResponse.getClientIdIssuedAt());
695  assertNotNull(registerResponse.getClientSecretExpiresAt());
696 
697  String clientId = registerResponse.getClientId();
698 
699  // 2. Request authorization
700  List<String> scopes = Arrays.asList("openid", "test");
701  String nonce = UUID.randomUUID().toString();
702  String state = UUID.randomUUID().toString();
703 
704  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
705  authorizationRequest.setState(state);
706 
708  authorizeClient.setRequest(authorizationRequest);
709 
711  authorizationEndpoint, authorizationRequest, userId, userSecret);
712 
713  assertNotNull(authorizationResponse.getLocation(), "The location is null");
714  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
715  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
716  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
717  assertNotNull(authorizationResponse.getState(), "The state is null");
718 
719  String idToken = authorizationResponse.getIdToken();
720  String accessToken = authorizationResponse.getAccessToken();
721 
722  // 3. Validate id_token
723  Jwt jwt = Jwt.parse(idToken);
724  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
725  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
726  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
727  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
728  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
729  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
730  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
731  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
732  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
733  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
734  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
735 
737  jwksUri,
738  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
739  ECDSASigner ecdsaSigner = new ECDSASigner(SignatureAlgorithm.ES256, publicKey);
740 
741  assertTrue(ecdsaSigner.validate(jwt));
742 
743  // 4. Request user info
744  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
745  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
746  userInfoClient.setRequest(userInfoRequest);
747  userInfoClient.setJwksUri(jwksUri);
748  UserInfoResponse userInfoResponse = userInfoClient.exec();
749 
750  showClient(userInfoClient);
751  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
752  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
753  assertNotNull(userInfoResponse.getClaim("member_of"));
754  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
755  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
ES256
Definition: SignatureAlgorithm.java:29
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
static ECDSAPublicKey getECDSAPublicKey(String jwkSetUrl, String keyId)
Definition: JwkClient.java:114
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimES384()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimES384 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
761  {
762  showTitle("authorizationRequestWithMultivaluedClaimES384");
763 
764  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
765 
766  // 1. Register client
767  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
768  StringUtils.spaceSeparatedToList(redirectUris));
769  registerRequest.setResponseTypes(responseTypes);
770  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
773  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
774 
775  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
776  registerClient.setRequest(registerRequest);
777  RegisterResponse registerResponse = registerClient.exec();
778 
779  showClient(registerClient);
780  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
781  assertNotNull(registerResponse.getClientId());
782  assertNotNull(registerResponse.getClientSecret());
783  assertNotNull(registerResponse.getRegistrationAccessToken());
784  assertNotNull(registerResponse.getClientIdIssuedAt());
785  assertNotNull(registerResponse.getClientSecretExpiresAt());
786 
787  String clientId = registerResponse.getClientId();
788 
789  // 2. Request authorization
790  List<String> scopes = Arrays.asList("openid", "test");
791  String nonce = UUID.randomUUID().toString();
792  String state = UUID.randomUUID().toString();
793 
794  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
795  authorizationRequest.setState(state);
796 
798  authorizeClient.setRequest(authorizationRequest);
799 
801  authorizationEndpoint, authorizationRequest, userId, userSecret);
802 
803  assertNotNull(authorizationResponse.getLocation(), "The location is null");
804  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
805  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
806  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
807  assertNotNull(authorizationResponse.getState(), "The state is null");
808 
809  String idToken = authorizationResponse.getIdToken();
810  String accessToken = authorizationResponse.getAccessToken();
811 
812  // 3. Validate id_token
813  Jwt jwt = Jwt.parse(idToken);
814  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
815  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
816  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
817  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
818  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
819  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
820  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
821  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
822  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
823  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
824  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
825 
827  jwksUri,
828  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
829  ECDSASigner ecdsaSigner = new ECDSASigner(SignatureAlgorithm.ES384, publicKey);
830 
831  assertTrue(ecdsaSigner.validate(jwt));
832 
833  // 4. Request user info
834  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
835  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
836  userInfoClient.setRequest(userInfoRequest);
837  userInfoClient.setJwksUri(jwksUri);
838  UserInfoResponse userInfoResponse = userInfoClient.exec();
839 
840  showClient(userInfoClient);
841  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
842  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
843  assertNotNull(userInfoResponse.getClaim("member_of"));
844  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
845  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
ES384
Definition: SignatureAlgorithm.java:30
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
static ECDSAPublicKey getECDSAPublicKey(String jwkSetUrl, String keyId)
Definition: JwkClient.java:114
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimES512()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimES512 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
851  {
852  showTitle("authorizationRequestWithMultivaluedClaimES512");
853 
854  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
855 
856  // 1. Register client
857  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
858  StringUtils.spaceSeparatedToList(redirectUris));
859  registerRequest.setResponseTypes(responseTypes);
860  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
863  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
864 
865  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
866  registerClient.setRequest(registerRequest);
867  RegisterResponse registerResponse = registerClient.exec();
868 
869  showClient(registerClient);
870  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
871  assertNotNull(registerResponse.getClientId());
872  assertNotNull(registerResponse.getClientSecret());
873  assertNotNull(registerResponse.getRegistrationAccessToken());
874  assertNotNull(registerResponse.getClientIdIssuedAt());
875  assertNotNull(registerResponse.getClientSecretExpiresAt());
876 
877  String clientId = registerResponse.getClientId();
878 
879  // 2. Request authorization
880  List<String> scopes = Arrays.asList("openid", "test");
881  String nonce = UUID.randomUUID().toString();
882  String state = UUID.randomUUID().toString();
883 
884  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
885  authorizationRequest.setState(state);
886 
888  authorizeClient.setRequest(authorizationRequest);
889 
891  authorizationEndpoint, authorizationRequest, userId, userSecret);
892 
893  assertNotNull(authorizationResponse.getLocation(), "The location is null");
894  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
895  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
896  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
897  assertNotNull(authorizationResponse.getState(), "The state is null");
898 
899  String idToken = authorizationResponse.getIdToken();
900  String accessToken = authorizationResponse.getAccessToken();
901 
902  // 3. Validate id_token
903  Jwt jwt = Jwt.parse(idToken);
904  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
905  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
906  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
907  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
908  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
909  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
910  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
911  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
912  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
913  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
914  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
915 
917  jwksUri,
918  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
919  ECDSASigner ecdsaSigner = new ECDSASigner(SignatureAlgorithm.ES512, publicKey);
920 
921  assertTrue(ecdsaSigner.validate(jwt));
922 
923  // 4. Request user info
924  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
925  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
926  userInfoClient.setRequest(userInfoRequest);
927  userInfoClient.setJwksUri(jwksUri);
928  UserInfoResponse userInfoResponse = userInfoClient.exec();
929 
930  showClient(userInfoClient);
931  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
932  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
933  assertNotNull(userInfoResponse.getClaim("member_of"));
934  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
935  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
ES512
Definition: SignatureAlgorithm.java:31
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
static ECDSAPublicKey getECDSAPublicKey(String jwkSetUrl, String keyId)
Definition: JwkClient.java:114
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimHS256()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimHS256 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
141  {
142  showTitle("authorizationRequestWithMultivaluedClaimHS256");
143 
144  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
145 
146  // 1. Register client
147  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
148  StringUtils.spaceSeparatedToList(redirectUris));
149  registerRequest.setResponseTypes(responseTypes);
150  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
153  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
154 
155  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
156  registerClient.setRequest(registerRequest);
157  RegisterResponse registerResponse = registerClient.exec();
158 
159  showClient(registerClient);
160  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
161  assertNotNull(registerResponse.getClientId());
162  assertNotNull(registerResponse.getClientSecret());
163  assertNotNull(registerResponse.getRegistrationAccessToken());
164  assertNotNull(registerResponse.getClientIdIssuedAt());
165  assertNotNull(registerResponse.getClientSecretExpiresAt());
166 
167  String clientId = registerResponse.getClientId();
168  String clientSecret = registerResponse.getClientSecret();
169 
170  // 2. Request authorization
171  List<String> scopes = Arrays.asList("openid", "test");
172  String nonce = UUID.randomUUID().toString();
173  String state = UUID.randomUUID().toString();
174 
175  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
176  authorizationRequest.setState(state);
177 
179  authorizeClient.setRequest(authorizationRequest);
180 
182  authorizationEndpoint, authorizationRequest, userId, userSecret);
183 
184  assertNotNull(authorizationResponse.getLocation(), "The location is null");
185  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
186  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
187  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
188  assertNotNull(authorizationResponse.getState(), "The state is null");
189 
190  String idToken = authorizationResponse.getIdToken();
191  String accessToken = authorizationResponse.getAccessToken();
192 
193  // 3. Validate id_token
194  Jwt jwt = Jwt.parse(idToken);
195  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
196  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
197  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
198  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
199  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
200  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
201  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
202  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
203  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
204  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
205  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
206 
207  HMACSigner hmacSigner = new HMACSigner(SignatureAlgorithm.HS256, clientSecret);
208  assertTrue(hmacSigner.validate(jwt));
209 
210  // 4. Request user info
211  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
212  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
213  userInfoClient.setRequest(userInfoRequest);
214  userInfoClient.setSharedKey(clientSecret);
215  UserInfoResponse userInfoResponse = userInfoClient.exec();
216 
217  showClient(userInfoClient);
218  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
219  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
220  assertNotNull(userInfoResponse.getClaim("member_of"));
221  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
222  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
HS256
Definition: SignatureAlgorithm.java:23
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
void setSharedKey(String sharedKey)
Definition: UserInfoClient.java:191
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimHS384()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimHS384 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
228  {
229  showTitle("authorizationRequestWithMultivaluedClaimHS384");
230 
231  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
232 
233  // 1. Register client
234  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
235  StringUtils.spaceSeparatedToList(redirectUris));
236  registerRequest.setResponseTypes(responseTypes);
237  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
240  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
241 
242  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
243  registerClient.setRequest(registerRequest);
244  RegisterResponse registerResponse = registerClient.exec();
245 
246  showClient(registerClient);
247  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
248  assertNotNull(registerResponse.getClientId());
249  assertNotNull(registerResponse.getClientSecret());
250  assertNotNull(registerResponse.getRegistrationAccessToken());
251  assertNotNull(registerResponse.getClientIdIssuedAt());
252  assertNotNull(registerResponse.getClientSecretExpiresAt());
253 
254  String clientId = registerResponse.getClientId();
255  String clientSecret = registerResponse.getClientSecret();
256 
257  // 2. Request authorization
258  List<String> scopes = Arrays.asList("openid", "test");
259  String nonce = UUID.randomUUID().toString();
260  String state = UUID.randomUUID().toString();
261 
262  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
263  authorizationRequest.setState(state);
264 
266  authorizeClient.setRequest(authorizationRequest);
267 
269  authorizationEndpoint, authorizationRequest, userId, userSecret);
270 
271  assertNotNull(authorizationResponse.getLocation(), "The location is null");
272  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
273  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
274  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
275  assertNotNull(authorizationResponse.getState(), "The state is null");
276 
277  String idToken = authorizationResponse.getIdToken();
278  String accessToken = authorizationResponse.getAccessToken();
279 
280  // 3. Validate id_token
281  Jwt jwt = Jwt.parse(idToken);
282  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
283  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
284  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
285  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
286  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
287  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
288  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
289  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
290  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
291  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
292  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
293 
294  HMACSigner hmacSigner = new HMACSigner(SignatureAlgorithm.HS384, clientSecret);
295  assertTrue(hmacSigner.validate(jwt));
296 
297  // 4. Request user info
298  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
299  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
300  userInfoClient.setRequest(userInfoRequest);
301  userInfoClient.setSharedKey(clientSecret);
302  UserInfoResponse userInfoResponse = userInfoClient.exec();
303 
304  showClient(userInfoClient);
305  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
306  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
307  assertNotNull(userInfoResponse.getClaim("member_of"));
308  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
309  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
void setSharedKey(String sharedKey)
Definition: UserInfoClient.java:191
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
HS384
Definition: SignatureAlgorithm.java:24
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimHS512()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimHS512 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
315  {
316  showTitle("authorizationRequestWithMultivaluedClaimHS512");
317 
318  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
319 
320  // 1. Register client
321  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
322  StringUtils.spaceSeparatedToList(redirectUris));
323  registerRequest.setResponseTypes(responseTypes);
324  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
327  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
328 
329  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
330  registerClient.setRequest(registerRequest);
331  RegisterResponse registerResponse = registerClient.exec();
332 
333  showClient(registerClient);
334  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
335  assertNotNull(registerResponse.getClientId());
336  assertNotNull(registerResponse.getClientSecret());
337  assertNotNull(registerResponse.getRegistrationAccessToken());
338  assertNotNull(registerResponse.getClientIdIssuedAt());
339  assertNotNull(registerResponse.getClientSecretExpiresAt());
340 
341  String clientId = registerResponse.getClientId();
342  String clientSecret = registerResponse.getClientSecret();
343 
344  // 2. Request authorization
345  List<String> scopes = Arrays.asList("openid", "test");
346  String nonce = UUID.randomUUID().toString();
347  String state = UUID.randomUUID().toString();
348 
349  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
350  authorizationRequest.setState(state);
351 
353  authorizeClient.setRequest(authorizationRequest);
354 
356  authorizationEndpoint, authorizationRequest, userId, userSecret);
357 
358  assertNotNull(authorizationResponse.getLocation(), "The location is null");
359  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
360  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
361  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
362  assertNotNull(authorizationResponse.getState(), "The state is null");
363 
364  String idToken = authorizationResponse.getIdToken();
365  String accessToken = authorizationResponse.getAccessToken();
366 
367  // 3. Validate id_token
368  Jwt jwt = Jwt.parse(idToken);
369  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
370  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
371  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
372  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
373  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
374  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
375  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
376  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
377  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
378  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
379  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
380 
381  HMACSigner hmacSigner = new HMACSigner(SignatureAlgorithm.HS512, clientSecret);
382  assertTrue(hmacSigner.validate(jwt));
383 
384  // 4. Request user info
385  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
386  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
387  userInfoClient.setRequest(userInfoRequest);
388  userInfoClient.setSharedKey(clientSecret);
389  UserInfoResponse userInfoResponse = userInfoClient.exec();
390 
391  showClient(userInfoClient);
392  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
393  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
394  assertNotNull(userInfoResponse.getClaim("member_of"));
395  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
396  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
HS512
Definition: SignatureAlgorithm.java:25
void setSharedKey(String sharedKey)
Definition: UserInfoClient.java:191
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimNone()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimNone ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
54  {
55  showTitle("authorizationRequestWithMultivaluedClaimNone");
56 
57  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
58 
59  // 1. Register client
60  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
61  StringUtils.spaceSeparatedToList(redirectUris));
62  registerRequest.setResponseTypes(responseTypes);
63  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
66  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
67 
69  registerClient.setRequest(registerRequest);
70  RegisterResponse registerResponse = registerClient.exec();
71 
72  showClient(registerClient);
73  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
74  assertNotNull(registerResponse.getClientId());
75  assertNotNull(registerResponse.getClientSecret());
76  assertNotNull(registerResponse.getRegistrationAccessToken());
77  assertNotNull(registerResponse.getClientIdIssuedAt());
78  assertNotNull(registerResponse.getClientSecretExpiresAt());
79 
80  String clientId = registerResponse.getClientId();
81 
82  // 2. Request authorization
83  List<String> scopes = Arrays.asList("openid", "test");
84  String nonce = UUID.randomUUID().toString();
85  String state = UUID.randomUUID().toString();
86 
87  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
88  authorizationRequest.setState(state);
89 
91  authorizeClient.setRequest(authorizationRequest);
92 
94  authorizationEndpoint, authorizationRequest, userId, userSecret);
95 
96  assertNotNull(authorizationResponse.getLocation(), "The location is null");
97  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
98  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
99  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
100  assertNotNull(authorizationResponse.getState(), "The state is null");
101 
102  String idToken = authorizationResponse.getIdToken();
103  String accessToken = authorizationResponse.getAccessToken();
104 
105  // 3. Validate id_token
106  Jwt jwt = Jwt.parse(idToken);
107  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
108  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
109  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
110  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
111  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
112  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
113  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
114  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
115  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
116  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
117  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
118 
119  PlainTextSignature signer = new PlainTextSignature();
120  assertTrue(signer.validate(jwt));
121 
122  // 4. Request user info
123  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
124  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
125  userInfoClient.setRequest(userInfoRequest);
126  UserInfoResponse userInfoResponse = userInfoClient.exec();
127 
128  showClient(userInfoClient);
129  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
130  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
131  assertNotNull(userInfoResponse.getClaim(JwtClaimName.AUDIENCE));
132  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ISSUER));
133  assertNotNull(userInfoResponse.getClaim("member_of"));
134  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
135  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
String getClientId()
Definition: RegisterResponse.java:142
NONE
Definition: SignatureAlgorithm.java:22
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimRS256()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimRS256 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
402  {
403  showTitle("authorizationRequestWithMultivaluedClaimRS256");
404 
405  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
406 
407  // 1. Register client
408  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
409  StringUtils.spaceSeparatedToList(redirectUris));
410  registerRequest.setResponseTypes(responseTypes);
411  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
413  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
414 
415  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
416  registerClient.setRequest(registerRequest);
417  RegisterResponse registerResponse = registerClient.exec();
418 
419  showClient(registerClient);
420  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
421  assertNotNull(registerResponse.getClientId());
422  assertNotNull(registerResponse.getClientSecret());
423  assertNotNull(registerResponse.getRegistrationAccessToken());
424  assertNotNull(registerResponse.getClientIdIssuedAt());
425  assertNotNull(registerResponse.getClientSecretExpiresAt());
426 
427  String clientId = registerResponse.getClientId();
428 
429  // 2. Request authorization
430  List<String> scopes = Arrays.asList("openid", "test");
431  String nonce = UUID.randomUUID().toString();
432  String state = UUID.randomUUID().toString();
433 
434  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
435  authorizationRequest.setState(state);
436 
438  authorizeClient.setRequest(authorizationRequest);
439 
441  authorizationEndpoint, authorizationRequest, userId, userSecret);
442 
443  assertNotNull(authorizationResponse.getLocation(), "The location is null");
444  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
445  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
446  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
447  assertNotNull(authorizationResponse.getState(), "The state is null");
448 
449  String idToken = authorizationResponse.getIdToken();
450  String accessToken = authorizationResponse.getAccessToken();
451 
452  // 3. Validate id_token
453  Jwt jwt = Jwt.parse(idToken);
454  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
455  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
456  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
457  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
458  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
459  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
460  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
461  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
462  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
463  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
464  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
465 
467  jwksUri,
468  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
469  RSASigner rsaSigner = new RSASigner(SignatureAlgorithm.RS256, publicKey);
470 
471  assertTrue(rsaSigner.validate(jwt));
472 
473  // 4. Request user info
474  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
475  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
476  userInfoClient.setRequest(userInfoRequest);
477  userInfoClient.setJwksUri(jwksUri);
478  UserInfoResponse userInfoResponse = userInfoClient.exec();
479 
480  showClient(userInfoClient);
481  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
482  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
483  assertNotNull(userInfoResponse.getClaim("member_of"));
484  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
485  }
ID_TOKEN
Definition: ResponseType.java:47
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
RS256
Definition: SignatureAlgorithm.java:26
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
static RSAPublicKey getRSAPublicKey(String jwkSetUri, String keyId)
Definition: JwkClient.java:94
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimRS384()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimRS384 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
491  {
492  showTitle("authorizationRequestWithMultivaluedClaimRS384");
493 
494  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
495 
496  // 1. Register client
497  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
498  StringUtils.spaceSeparatedToList(redirectUris));
499  registerRequest.setResponseTypes(responseTypes);
500  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
503  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
504 
505  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
506  registerClient.setRequest(registerRequest);
507  RegisterResponse registerResponse = registerClient.exec();
508 
509  showClient(registerClient);
510  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
511  assertNotNull(registerResponse.getClientId());
512  assertNotNull(registerResponse.getClientSecret());
513  assertNotNull(registerResponse.getRegistrationAccessToken());
514  assertNotNull(registerResponse.getClientIdIssuedAt());
515  assertNotNull(registerResponse.getClientSecretExpiresAt());
516 
517  String clientId = registerResponse.getClientId();
518 
519  // 2. Request authorization
520  List<String> scopes = Arrays.asList("openid", "test");
521  String nonce = UUID.randomUUID().toString();
522  String state = UUID.randomUUID().toString();
523 
524  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
525  authorizationRequest.setState(state);
526 
528  authorizeClient.setRequest(authorizationRequest);
529 
531  authorizationEndpoint, authorizationRequest, userId, userSecret);
532 
533  assertNotNull(authorizationResponse.getLocation(), "The location is null");
534  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
535  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
536  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
537  assertNotNull(authorizationResponse.getState(), "The state is null");
538 
539  String idToken = authorizationResponse.getIdToken();
540  String accessToken = authorizationResponse.getAccessToken();
541 
542  // 3. Validate id_token
543  Jwt jwt = Jwt.parse(idToken);
544  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
545  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
546  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
547  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
548  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
549  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
550  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
551  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
552  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
553  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
554  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
555 
557  jwksUri,
558  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
559  RSASigner rsaSigner = new RSASigner(SignatureAlgorithm.RS384, publicKey);
560 
561  assertTrue(rsaSigner.validate(jwt));
562 
563  // 4. Request user info
564  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
565  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
566  userInfoClient.setRequest(userInfoRequest);
567  userInfoClient.setJwksUri(jwksUri);
568  UserInfoResponse userInfoResponse = userInfoClient.exec();
569 
570  showClient(userInfoClient);
571  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
572  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
573  assertNotNull(userInfoResponse.getClaim("member_of"));
574  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
575  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
String jwksUri
Definition: BaseTest.java:80
RS384
Definition: SignatureAlgorithm.java:27
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
static RSAPublicKey getRSAPublicKey(String jwkSetUri, String keyId)
Definition: JwkClient.java:94
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ authorizationRequestWithMultivaluedClaimRS512()

void org.xdi.oxauth.ws.rs.MultivaluedClaims.authorizationRequestWithMultivaluedClaimRS512 ( final String  userId,
final String  userSecret,
final String  redirectUri,
final String  redirectUris,
final String  sectorIdentifierUri 
) throws Exception
inline
581  {
582  showTitle("authorizationRequestWithMultivaluedClaimRS512");
583 
584  List<ResponseType> responseTypes = Arrays.asList(ResponseType.TOKEN, ResponseType.ID_TOKEN);
585 
586  // 1. Register client
587  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
588  StringUtils.spaceSeparatedToList(redirectUris));
589  registerRequest.setResponseTypes(responseTypes);
590  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
593  registerRequest.addCustomAttribute("oxIncludeClaimsInIdToken", "true");
594 
595  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
596  registerClient.setRequest(registerRequest);
597  RegisterResponse registerResponse = registerClient.exec();
598 
599  showClient(registerClient);
600  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
601  assertNotNull(registerResponse.getClientId());
602  assertNotNull(registerResponse.getClientSecret());
603  assertNotNull(registerResponse.getRegistrationAccessToken());
604  assertNotNull(registerResponse.getClientIdIssuedAt());
605  assertNotNull(registerResponse.getClientSecretExpiresAt());
606 
607  String clientId = registerResponse.getClientId();
608 
609  // 2. Request authorization
610  List<String> scopes = Arrays.asList("openid", "test");
611  String nonce = UUID.randomUUID().toString();
612  String state = UUID.randomUUID().toString();
613 
614  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
615  authorizationRequest.setState(state);
616 
618  authorizeClient.setRequest(authorizationRequest);
619 
621  authorizationEndpoint, authorizationRequest, userId, userSecret);
622 
623  assertNotNull(authorizationResponse.getLocation(), "The location is null");
624  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
625  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
626  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
627  assertNotNull(authorizationResponse.getState(), "The state is null");
628 
629  String idToken = authorizationResponse.getIdToken();
630  String accessToken = authorizationResponse.getAccessToken();
631 
632  // 3. Validate id_token
633  Jwt jwt = Jwt.parse(idToken);
634  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
635  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
636  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
637  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
638  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
639  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
640  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
641  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
642  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
643  assertNotNull(jwt.getClaims().getClaimAsStringList("member_of"));
644  assertTrue(jwt.getClaims().getClaimAsStringList("member_of").size() > 1);
645 
647  jwksUri,
648  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
649  RSASigner rsaSigner = new RSASigner(SignatureAlgorithm.RS512, publicKey);
650 
651  assertTrue(rsaSigner.validate(jwt));
652 
653  // 4. Request user info
654  UserInfoRequest userInfoRequest = new UserInfoRequest(accessToken);
655  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
656  userInfoClient.setRequest(userInfoRequest);
657  userInfoClient.setJwksUri(jwksUri);
658  UserInfoResponse userInfoResponse = userInfoClient.exec();
659 
660  showClient(userInfoClient);
661  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
662  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
663  assertNotNull(userInfoResponse.getClaim("member_of"));
664  assertTrue(userInfoResponse.getClaim("member_of").size() > 1);
665  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
void setUserInfoSignedResponseAlg(SignatureAlgorithm userInfoSignedResponseAlg)
Definition: RegisterRequest.java:610
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
UserInfoResponse exec()
Definition: UserInfoClient.java:77
String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
String jwksUri
Definition: BaseTest.java:80
Definition: RegisterResponse.java:34
String getState()
Definition: AuthorizationResponse.java:314
void setSectorIdentifierUri(String sectorIdentifierUri)
Definition: RegisterRequest.java:504
Definition: SignatureAlgorithm.java:20
static void showClient(BaseClient client)
Definition: BaseTest.java:775
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: AuthorizeClient.java:29
Definition: UserInfoRequest.java:20
String getClientSecret()
Definition: RegisterResponse.java:160
WEB
Definition: ApplicationType.java:28
TokenType getTokenType()
Definition: AuthorizationResponse.java:237
List< String > getClaim(String claimName)
Definition: UserInfoResponse.java:109
Definition: JwkClient.java:29
String getClientId()
Definition: RegisterResponse.java:142
void showTitle(String title)
Definition: BaseTest.java:761
Definition: Jwt.java:24
void setRequest(T request)
Definition: BaseClient.java:68
Definition: AuthorizationResponse.java:32
void setResponseTypes(List< ResponseType > responseTypes)
Definition: RegisterRequest.java:272
Definition: RegisterRequest.java:37
RS512
Definition: SignatureAlgorithm.java:28
static RSAPublicKey getRSAPublicKey(String jwkSetUri, String keyId)
Definition: JwkClient.java:94
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
void setJwksUri(String jwksUri)
Definition: UserInfoClient.java:203
Definition: UserInfoClient.java:34
String userInfoEndpoint
Definition: BaseTest.java:76
TOKEN
Definition: ResponseType.java:43
String getLocation()
Definition: BaseResponse.java:58
int getStatus()
Definition: BaseResponse.java:49
Definition: AuthorizationRequest.java:33
Definition: ApplicationType.java:12
Definition: ResponseType.java:34
void setState(String state)
Definition: AuthorizationRequest.java:217
Date getClientIdIssuedAt()
Definition: RegisterResponse.java:189
String authorizationEndpoint
Definition: BaseTest.java:72
static Jwt parse(String encodedJwt)
Definition: Jwt.java:54
Definition: UserInfoResponse.java:20
AuthorizationResponse authenticateResourceOwnerAndGrantAccess(String authorizeUrl, AuthorizationRequest authorizationRequest, String userId, String userSecret)
Definition: BaseTest.java:252
String getAccessToken()
Definition: AuthorizationResponse.java:185
void addCustomAttribute(String p_name, String p_value)
Definition: RegisterRequest.java:925
String getRegistrationAccessToken()
Definition: RegisterResponse.java:173

◆ clientExecutor() [1/2]

static ClientExecutor org.xdi.oxauth.BaseTest.clientExecutor ( ) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException
inlinestaticinherited
822  {
823  return clientExecutor(false);
824  }
static ClientExecutor clientExecutor()
Definition: BaseTest.java:822

◆ clientExecutor() [2/2]

static ClientExecutor org.xdi.oxauth.BaseTest.clientExecutor ( boolean  trustAll) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException
inlinestaticinherited
826  {
827  if (trustAll) {
828  return new ApacheHttpClient4Executor(createHttpClientTrustAll());
829  }
830  return ClientRequest.getDefaultExecutor();
831  }
static HttpClient createHttpClientTrustAll()
Definition: BaseTest.java:833

◆ createDeployment()

static Archive<?> org.xdi.oxauth.ConfigurableTest.createDeployment ( )
inlinestaticinherited
40  {
41  return Deployments.createDeployment();
42  }

◆ createHttpClient() [1/2]

static DefaultHttpClient org.xdi.oxauth.BaseTest.createHttpClient ( )
inlinestaticinherited
794  {
795  return createHttpClient(HostnameVerifierType.DEFAULT);
796  }
static DefaultHttpClient createHttpClient()
Definition: BaseTest.java:794

◆ createHttpClient() [2/2]

static DefaultHttpClient org.xdi.oxauth.BaseTest.createHttpClient ( HostnameVerifierType  p_verifierType)
inlinestaticinherited
798  {
799  if (p_verifierType != null && p_verifierType != HostnameVerifierType.DEFAULT) {
800  switch (p_verifierType) {
801  case ALLOW_ALL:
802  HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
803 
804  DefaultHttpClient client = new DefaultHttpClient();
805 
806  SchemeRegistry registry = new SchemeRegistry();
807  SSLSocketFactory socketFactory = SSLSocketFactory.getSocketFactory();
808  socketFactory.setHostnameVerifier((X509HostnameVerifier) hostnameVerifier);
809  registry.register(new Scheme("https", socketFactory, 443));
810  SingleClientConnManager mgr = new SingleClientConnManager(client.getParams(), registry);
811 
812  // Set verifier
813  HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
814  return new DefaultHttpClient(mgr, client.getParams());
815  case DEFAULT:
816  return new DefaultHttpClient();
817  }
818  }
819  return new DefaultHttpClient();
820  }

◆ createHttpClientTrustAll()

static HttpClient org.xdi.oxauth.BaseTest.createHttpClientTrustAll ( ) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException
inlinestaticinherited
833  {
834  SSLSocketFactory sf = new SSLSocketFactory(new TrustStrategy() {
835  @Override
836  public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {
837  return true;
838  }
839  }, new AllowAllHostnameVerifier());
840 
841  SchemeRegistry registry = new SchemeRegistry();
842  registry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
843  registry.register(new Scheme("https", 443, sf));
844  ClientConnectionManager ccm = new PoolingClientConnectionManager(registry);
845  return new DefaultHttpClient(ccm);
846  }

◆ discovery()

void org.xdi.oxauth.BaseTest.discovery ( ITestContext  context) throws Exception
inlineinherited
670  {
671  // Load Form Interaction
672  loginFormUsername = context.getCurrentXmlTest().getParameter("loginFormUsername");
673  loginFormPassword = context.getCurrentXmlTest().getParameter("loginFormPassword");
674  loginFormLoginButton = context.getCurrentXmlTest().getParameter("loginFormLoginButton");
675  authorizeFormAllowButton = context.getCurrentXmlTest().getParameter("authorizeFormAllowButton");
676  authorizeFormDoNotAllowButton = context.getCurrentXmlTest().getParameter("authorizeFormDoNotAllowButton");
677 
678  String resource = context.getCurrentXmlTest().getParameter("swdResource");
679 
680  if (StringUtils.isNotBlank(resource)) {
681 
682  showTitle("OpenID Connect Discovery");
683 
684  OpenIdConnectDiscoveryClient openIdConnectDiscoveryClient = new OpenIdConnectDiscoveryClient(resource);
685  OpenIdConnectDiscoveryResponse openIdConnectDiscoveryResponse = openIdConnectDiscoveryClient.exec(clientExecutor(true));
686 
687  showClient(openIdConnectDiscoveryClient);
688  assertEquals(openIdConnectDiscoveryResponse.getStatus(), 200, "Unexpected response code");
689  assertNotNull(openIdConnectDiscoveryResponse.getSubject());
690  assertTrue(openIdConnectDiscoveryResponse.getLinks().size() > 0);
691 
692  configurationEndpoint = openIdConnectDiscoveryResponse.getLinks().get(0).getHref() +
693  "/.well-known/openid-configuration";
694 
695  System.out.println("OpenID Connect Configuration");
696 
697  OpenIdConfigurationClient client = new OpenIdConfigurationClient(configurationEndpoint);
698  client.setExecutor(clientExecutor(true));
700 
701  showClient(client);
702  assertEquals(response.getStatus(), 200, "Unexpected response code");
703  assertNotNull(response.getIssuer(), "The issuer is null");
704  assertNotNull(response.getAuthorizationEndpoint(), "The authorizationEndpoint is null");
705  assertNotNull(response.getTokenEndpoint(), "The tokenEndpoint is null");
706  assertNotNull(response.getUserInfoEndpoint(), "The userInfoEndPoint is null");
707  assertNotNull(response.getJwksUri(), "The jwksUri is null");
708  assertNotNull(response.getRegistrationEndpoint(), "The registrationEndpoint is null");
709 
710  assertTrue(response.getScopesSupported().size() > 0, "The scopesSupported is empty");
711  assertTrue(response.getScopeToClaimsMapping().size() > 0, "The scope to claims mapping is empty");
712  assertTrue(response.getResponseTypesSupported().size() > 0, "The responseTypesSupported is empty");
713  assertTrue(response.getGrantTypesSupported().size() > 0, "The grantTypesSupported is empty");
714  assertTrue(response.getAcrValuesSupported().size() >= 0, "The acrValuesSupported is empty");
715  assertTrue(response.getSubjectTypesSupported().size() > 0, "The subjectTypesSupported is empty");
716  assertTrue(response.getIdTokenSigningAlgValuesSupported().size() > 0, "The idTokenSigningAlgValuesSupported is empty");
717  assertTrue(response.getRequestObjectSigningAlgValuesSupported().size() > 0, "The requestObjectSigningAlgValuesSupported is empty");
718  assertTrue(response.getTokenEndpointAuthMethodsSupported().size() > 0, "The tokenEndpointAuthMethodsSupported is empty");
719  assertTrue(response.getClaimsSupported().size() > 0, "The claimsSupported is empty");
720 
722  tokenEndpoint = response.getTokenEndpoint();
727  jwksUri = response.getJwksUri();
732  gluuConfigurationEndpoint = determineGluuConfigurationEndpoint(openIdConnectDiscoveryResponse.getLinks().get(0).getHref());
733  } else {
734  showTitle("Loading configuration endpoints from properties file");
735 
736  authorizationEndpoint = context.getCurrentXmlTest().getParameter("authorizationEndpoint");
737  tokenEndpoint = context.getCurrentXmlTest().getParameter("tokenEndpoint");
738  userInfoEndpoint = context.getCurrentXmlTest().getParameter("userInfoEndpoint");
739  clientInfoEndpoint = context.getCurrentXmlTest().getParameter("clientInfoEndpoint");
740  checkSessionIFrame = context.getCurrentXmlTest().getParameter("checkSessionIFrame");
741  endSessionEndpoint = context.getCurrentXmlTest().getParameter("endSessionEndpoint");
742  jwksUri = context.getCurrentXmlTest().getParameter("jwksUri");
743  registrationEndpoint = context.getCurrentXmlTest().getParameter("registrationEndpoint");
744  configurationEndpoint = context.getCurrentXmlTest().getParameter("configurationEndpoint");
745  idGenEndpoint = context.getCurrentXmlTest().getParameter("idGenEndpoint");
746  introspectionEndpoint = context.getCurrentXmlTest().getParameter("introspectionEndpoint");
747  scopeToClaimsMapping = new HashMap<String, List<String>>();
748  }
749 
751  }
String registrationEndpoint
Definition: BaseTest.java:81
String getIntrospectionEndpoint()
Definition: OpenIdConfigurationResponse.java:343
List< String > getTokenEndpointAuthMethodsSupported()
Definition: OpenIdConfigurationResponse.java:642
String determineAuthorizationPageEndpoint(String authorizationEndpoint)
Definition: BaseTest.java:753
String jwksUri
Definition: BaseTest.java:80
String getRegistrationEndpoint()
Definition: OpenIdConfigurationResponse.java:310
String clientInfoEndpoint
Definition: BaseTest.java:77
String getCheckSessionIFrame()
Definition: OpenIdConfigurationResponse.java:248
String authorizationPageEndpoint
Definition: BaseTest.java:73
String idGenEndpoint
Definition: BaseTest.java:83
String getIdGenerationEndpoint()
Definition: OpenIdConfigurationResponse.java:327
static void showClient(BaseClient client)
Definition: BaseTest.java:775
List< String > getRequestObjectSigningAlgValuesSupported()
Definition: OpenIdConfigurationResponse.java:579
String loginFormUsername
Definition: BaseTest.java:88
String loginFormPassword
Definition: BaseTest.java:89
String configurationEndpoint
Definition: BaseTest.java:82
List< String > getSubjectTypesSupported()
Definition: OpenIdConfigurationResponse.java:438
String getEndSessionEndpoint()
Definition: OpenIdConfigurationResponse.java:268
String tokenEndpoint
Definition: BaseTest.java:75
String authorizeFormDoNotAllowButton
Definition: BaseTest.java:92
List< String > getAcrValuesSupported()
Definition: OpenIdConfigurationResponse.java:418
String getClientInfoEndpoint()
Definition: OpenIdConfigurationResponse.java:228
List< String > getGrantTypesSupported()
Definition: OpenIdConfigurationResponse.java:398
String checkSessionIFrame
Definition: BaseTest.java:78
void setExecutor(ClientExecutor executor)
Definition: BaseClient.java:84
OpenIdConfigurationResponse execOpenIdConfiguration()
Definition: OpenIdConfigurationClient.java:47
String loginFormLoginButton
Definition: BaseTest.java:90
String gluuConfigurationEndpoint
Definition: BaseTest.java:74
Map< String, List< String > > getScopeToClaimsMapping()
Definition: OpenIdConfigurationResponse.java:136
String getJwksUri()
Definition: OpenIdConfigurationResponse.java:289
String getTokenEndpoint()
Definition: OpenIdConfigurationResponse.java:192
List< String > getIdTokenSigningAlgValuesSupported()
Definition: OpenIdConfigurationResponse.java:519
Definition: OpenIdConnectDiscoveryClient.java:29
String introspectionEndpoint
Definition: BaseTest.java:84
void showTitle(String title)
Definition: BaseTest.java:761
List< String > getResponseTypesSupported()
Definition: OpenIdConfigurationResponse.java:378
String endSessionEndpoint
Definition: BaseTest.java:79
String getSubject()
Definition: OpenIdConnectDiscoveryResponse.java:32
List< String > getScopesSupported()
Definition: OpenIdConfigurationResponse.java:360
String determineGluuConfigurationEndpoint(String host)
Definition: BaseTest.java:757
OpenIdConnectDiscoveryResponse exec()
Definition: OpenIdConnectDiscoveryClient.java:47
String getAuthorizationEndpoint()
Definition: OpenIdConfigurationResponse.java:174
String userInfoEndpoint
Definition: BaseTest.java:76
Definition: OpenIdConfigurationClient.java:27
int getStatus()
Definition: BaseResponse.java:49
List< WebFingerLink > getLinks()
Definition: OpenIdConnectDiscoveryResponse.java:40
List< String > getClaimsSupported()
Definition: OpenIdConfigurationResponse.java:728
Definition: OpenIdConnectDiscoveryResponse.java:17
String authorizationEndpoint
Definition: BaseTest.java:72
String getUserInfoEndpoint()
Definition: OpenIdConfigurationResponse.java:210
Definition: OpenIdConfigurationResponse.java:26
static ClientExecutor clientExecutor()
Definition: BaseTest.java:822
Map< String, List< String > > scopeToClaimsMapping
Definition: BaseTest.java:85
String authorizeFormAllowButton
Definition: BaseTest.java:91
String getIssuer()
Definition: OpenIdConfigurationResponse.java:156

◆ fails()

static void org.xdi.oxauth.BaseTest.fails ( Throwable  e)
inlinestaticinherited
50  {
51  Assert.fail(e.getMessage(), e);
52  }

◆ getAuthorizationEndpoint()

String org.xdi.oxauth.BaseTest.getAuthorizationEndpoint ( )
inlineinherited
134  {
135  return authorizationEndpoint;
136  }
String authorizationEndpoint
Definition: BaseTest.java:72

◆ getCheckSessionIFrame()

String org.xdi.oxauth.BaseTest.getCheckSessionIFrame ( )
inlineinherited
166  {
167  return checkSessionIFrame;
168  }
String checkSessionIFrame
Definition: BaseTest.java:78

◆ getClientInfoEndpoint()

String org.xdi.oxauth.BaseTest.getClientInfoEndpoint ( )
inlineinherited
158  {
159  return clientInfoEndpoint;
160  }
String clientInfoEndpoint
Definition: BaseTest.java:77

◆ getConfigurationEndpoint()

String org.xdi.oxauth.BaseTest.getConfigurationEndpoint ( )
inlineinherited
222  {
223  return configurationEndpoint;
224  }
String configurationEndpoint
Definition: BaseTest.java:82

◆ getDriver()

WebDriver org.xdi.oxauth.BaseTest.getDriver ( )
inlineinherited
126  {
127  return driver;
128  }
WebDriver driver
Definition: BaseTest.java:70

◆ getEndSessionEndpoint()

String org.xdi.oxauth.BaseTest.getEndSessionEndpoint ( )
inlineinherited
174  {
175  return endSessionEndpoint;
176  }
String endSessionEndpoint
Definition: BaseTest.java:79

◆ getIdGenEndpoint()

String org.xdi.oxauth.BaseTest.getIdGenEndpoint ( )
inlineinherited
214  {
215  return idGenEndpoint;
216  }
String idGenEndpoint
Definition: BaseTest.java:83

◆ getIntrospectionEndpoint()

String org.xdi.oxauth.BaseTest.getIntrospectionEndpoint ( )
inlineinherited
198  {
199  return introspectionEndpoint;
200  }
String introspectionEndpoint
Definition: BaseTest.java:84

◆ getJwksUri()

String org.xdi.oxauth.BaseTest.getJwksUri ( )
inlineinherited
182  {
183  return jwksUri;
184  }
String jwksUri
Definition: BaseTest.java:80

◆ getRegistrationEndpoint()

String org.xdi.oxauth.BaseTest.getRegistrationEndpoint ( )
inlineinherited
190  {
191  return registrationEndpoint;
192  }
String registrationEndpoint
Definition: BaseTest.java:81

◆ getScopeToClaimsMapping()

Map<String, List<String> > org.xdi.oxauth.BaseTest.getScopeToClaimsMapping ( )
inlineinherited
206  {
207  return scopeToClaimsMapping;
208  }
Map< String, List< String > > scopeToClaimsMapping
Definition: BaseTest.java:85

◆ getTokenEndpoint()

String org.xdi.oxauth.BaseTest.getTokenEndpoint ( )
inlineinherited
142  {
143  return tokenEndpoint;
144  }
String tokenEndpoint
Definition: BaseTest.java:75

◆ getUserInfoEndpoint()

String org.xdi.oxauth.BaseTest.getUserInfoEndpoint ( )
inlineinherited
150  {
151  return userInfoEndpoint;
152  }
String userInfoEndpoint
Definition: BaseTest.java:76

◆ initTestSuite()

void org.xdi.oxauth.BaseTest.initTestSuite ( ITestContext  context) throws FileNotFoundException, IOException
inlineinherited
95  {
96  SecurityProviderUtility.installBCProvider();
97 
98  Reporter.log("Invoked init test suite method \n", true);
99 
100  String propertiesFile = context.getCurrentXmlTest().getParameter("propertiesFile");
101  if (StringHelper.isEmpty(propertiesFile)) {
102  propertiesFile = "target/test-classes/testng.properties";
103  //propertiesFile = "U:\\own\\project\\git\\oxAuth\\Client\\src\\test\\resources\\testng_yuriy.properties";
104  //propertiesFile = "/Users/JAVIER/IdeaProjects/oxAuth/Client/target/test-classes/testng.properties";
105  }
106 
107  FileInputStream conf = new FileInputStream(propertiesFile);
108  Properties prop = new Properties();
109  prop.load(conf);
110 
111  Map<String, String> parameters = new HashMap<String, String>();
112  for (Entry<Object, Object> entry : prop.entrySet()) {
113  Object key = entry.getKey();
114  Object value = entry.getValue();
115 
116  if (StringHelper.isEmptyString(key) || StringHelper.isEmptyString(value)) {
117  continue;
118  }
119  parameters.put(key.toString(), value.toString());
120  }
121 
122  // Overrided test paramters
123  context.getSuite().getXmlSuite().setParameters(parameters);
124  }

◆ output()

static void org.xdi.oxauth.BaseTest.output ( String  p_msg)
inlinestaticinherited
54  {
55  System.out.println(p_msg);
56  }

◆ setAuthorizationEndpoint()

void org.xdi.oxauth.BaseTest.setAuthorizationEndpoint ( String  authorizationEndpoint)
inlineinherited
138  {
140  }
String authorizationEndpoint
Definition: BaseTest.java:72

◆ setCheckSessionIFrame()

void org.xdi.oxauth.BaseTest.setCheckSessionIFrame ( String  checkSessionIFrame)
inlineinherited
170  {
172  }
String checkSessionIFrame
Definition: BaseTest.java:78

◆ setClientInfoEndpoint()

void org.xdi.oxauth.BaseTest.setClientInfoEndpoint ( String  clientInfoEndpoint)
inlineinherited
162  {
164  }
String clientInfoEndpoint
Definition: BaseTest.java:77

◆ setConfigurationEndpoint()

void org.xdi.oxauth.BaseTest.setConfigurationEndpoint ( String  configurationEndpoint)
inlineinherited
226  {
228  }
String configurationEndpoint
Definition: BaseTest.java:82

◆ setDriver()

void org.xdi.oxauth.BaseTest.setDriver ( WebDriver  driver)
inlineinherited
130  {
131  this.driver = driver;
132  }
WebDriver driver
Definition: BaseTest.java:70

◆ setEndSessionEndpoint()

void org.xdi.oxauth.BaseTest.setEndSessionEndpoint ( String  endSessionEndpoint)
inlineinherited
178  {
180  }
String endSessionEndpoint
Definition: BaseTest.java:79

◆ setIdGenEndpoint()

void org.xdi.oxauth.BaseTest.setIdGenEndpoint ( String  p_idGenEndpoint)
inlineinherited
218  {
219  idGenEndpoint = p_idGenEndpoint;
220  }
String idGenEndpoint
Definition: BaseTest.java:83

◆ setIntrospectionEndpoint()

void org.xdi.oxauth.BaseTest.setIntrospectionEndpoint ( String  p_introspectionEndpoint)
inlineinherited
202  {
203  introspectionEndpoint = p_introspectionEndpoint;
204  }
String introspectionEndpoint
Definition: BaseTest.java:84

◆ setJwksUri()

void org.xdi.oxauth.BaseTest.setJwksUri ( String  jwksUri)
inlineinherited
186  {
187  this.jwksUri = jwksUri;
188  }
String jwksUri
Definition: BaseTest.java:80

◆ setRegistrationEndpoint()

void org.xdi.oxauth.BaseTest.setRegistrationEndpoint ( String  registrationEndpoint)
inlineinherited
194  {
196  }
String registrationEndpoint
Definition: BaseTest.java:81

◆ setScopeToClaimsMapping()

void org.xdi.oxauth.BaseTest.setScopeToClaimsMapping ( Map< String, List< String >>  p_scopeToClaimsMapping)
inlineinherited
210  {
211  scopeToClaimsMapping = p_scopeToClaimsMapping;
212  }
Map< String, List< String > > scopeToClaimsMapping
Definition: BaseTest.java:85

◆ setTokenEndpoint()

void org.xdi.oxauth.BaseTest.setTokenEndpoint ( String  tokenEndpoint)
inlineinherited
146  {
148  }
String tokenEndpoint
Definition: BaseTest.java:75

◆ setUserInfoEndpoint()

void org.xdi.oxauth.BaseTest.setUserInfoEndpoint ( String  userInfoEndpoint)
inlineinherited
154  {
156  }
String userInfoEndpoint
Definition: BaseTest.java:76

◆ showClient() [1/2]

static void org.xdi.oxauth.BaseTest.showClient ( BaseClient  client)
inlinestaticinherited
775  {
776  ClientUtils.showClient(client);
777  }
Definition: ClientUtils.java:17
static void showClient(BaseClient client)
Definition: ClientUtils.java:21

◆ showClient() [2/2]

static void org.xdi.oxauth.BaseTest.showClient ( BaseClient  client,
CookieStore  cookieStore 
)
inlinestaticinherited
779  {
780  ClientUtils.showClient(client, cookieStore);
781  }
Definition: ClientUtils.java:17
static void showClient(BaseClient client)
Definition: ClientUtils.java:21

◆ showClientUserAgent()

static void org.xdi.oxauth.BaseTest.showClientUserAgent ( BaseClient  client)
inlinestaticinherited
783  {
785  }
Definition: ClientUtils.java:17
static void showClientUserAgent(BaseClient client)
Definition: ClientUtils.java:35

◆ showEntity()

void org.xdi.oxauth.BaseTest.showEntity ( String  entity)
inlineinherited
769  {
770  if (entity != null) {
771  System.out.println("Entity: " + entity.replace("\\n", "\n"));
772  }
773  }

◆ showResponse() [1/2]

void org.xdi.oxauth.BaseTest.showResponse ( String  title,
Response  response 
)
inlineinherited
30  {
31  showResponse(title, response, null);
32  }
void showResponse(String title, Response response)
Definition: BaseTest.java:30

◆ showResponse() [2/2]

static void org.xdi.oxauth.BaseTest.showResponse ( String  title,
Response  response,
Object  entity 
)
inlinestaticinherited
34  {
35  System.out.println(" ");
36  System.out.println("RESPONSE FOR: " + title);
37  System.out.println(response.getStatus());
38  for (Entry<String, List<Object>> headers : response.getHeaders().entrySet()) {
39  String headerName = headers.getKey();
40  System.out.println(headerName + ": " + headers.getValue());
41  }
42 
43  if (entity != null) {
44  System.out.println(entity.toString().replace("\\n", "\n"));
45  }
46  System.out.println(" ");
47  System.out.println("Status message: " + response.getStatus());
48  }

◆ showTitle() [1/2]

void org.xdi.oxauth.BaseTest.showTitle ( String  title)
inlineinherited
22  {
23  title = "TEST: " + title;
24 
25  System.out.println("#######################################################");
26  System.out.println(title);
27  System.out.println("#######################################################");
28  }

◆ showTitle() [2/2]

void org.xdi.oxauth.BaseTest.showTitle ( String  title)
inlineinherited
761  {
762  title = "TEST: " + title;
763 
764  System.out.println("#######################################################");
765  System.out.println(title);
766  System.out.println("#######################################################");
767  }

◆ startSelenium()

void org.xdi.oxauth.BaseTest.startSelenium ( )
inlineinherited
230  {
231  //System.setProperty("webdriver.chrome.driver", "/Users/JAVIER/tmp/chromedriver");
232  //driver = new ChromeDriver();
233 
234  //driver = new SafariDriver();
235 
236  //driver = new FirefoxDriver();
237 
238  //driver = new InternetExplorerDriver();
239 
240  driver = new HtmlUnitDriver(true);
241  }
WebDriver driver
Definition: BaseTest.java:70

◆ stopSelenium()

void org.xdi.oxauth.BaseTest.stopSelenium ( )
inlineinherited
243  {
244 // driver.close();
245  driver.quit();
246  }
WebDriver driver
Definition: BaseTest.java:70

◆ waitForResourceOwnerAndGrantLoginForm() [1/2]

String org.xdi.oxauth.BaseTest.waitForResourceOwnerAndGrantLoginForm ( String  authorizeUrl,
AuthorizationRequest  authorizationRequest,
boolean  cleanupCookies 
)
inlineinherited

Try to open login form (via the user-agent)

617  {
618  String authorizationRequestUrl = authorizeUrl + "?" + authorizationRequest.getQueryString();
619 
620  AuthorizeClient authorizeClient = new AuthorizeClient(authorizeUrl);
621  authorizeClient.setRequest(authorizationRequest);
622 
623  System.out.println("waitForResourceOwnerAndGrantLoginForm: authorizationRequestUrl:" + authorizationRequestUrl);
624  startSelenium();
625  if (cleanupCookies) {
626  System.out.println("waitForResourceOwnerAndGrantLoginForm: Cleaning cookies");
628  }
629  driver.navigate().to(authorizationRequestUrl);
630 
631  WebElement usernameElement = driver.findElement(By.name(loginFormUsername));
632  WebElement passwordElement = driver.findElement(By.name(loginFormPassword));
633  WebElement loginButton = driver.findElement(By.name(loginFormLoginButton));
634 
635  if ((usernameElement == null) || (passwordElement == null) || (loginButton == null)) {
636  return null;
637  }
638 
639  Cookie sessionStateCookie = driver.manage().getCookieNamed("session_state");
640  String sessionState = null;
641  if (sessionStateCookie != null) {
642  sessionState = sessionStateCookie.getValue();
643  }
644  System.out.println("waitForResourceOwnerAndGrantLoginForm: sessionState:" + sessionState);
645 
646  stopSelenium();
647 
648  showClientUserAgent(authorizeClient);
649 
650  return sessionState;
651  }
String loginFormUsername
Definition: BaseTest.java:88
String loginFormPassword
Definition: BaseTest.java:89
void deleteAllCookies()
Definition: BaseTest.java:661
void stopSelenium()
Definition: BaseTest.java:243
Definition: AuthorizeClient.java:29
void startSelenium()
Definition: BaseTest.java:230
String loginFormLoginButton
Definition: BaseTest.java:90
void setRequest(T request)
Definition: BaseClient.java:68
WebDriver driver
Definition: BaseTest.java:70
String getQueryString()
Definition: AuthorizationRequest.java:486
static void showClientUserAgent(BaseClient client)
Definition: BaseTest.java:783

◆ waitForResourceOwnerAndGrantLoginForm() [2/2]

String org.xdi.oxauth.BaseTest.waitForResourceOwnerAndGrantLoginForm ( String  authorizeUrl,
AuthorizationRequest  authorizationRequest 
)
inlineinherited

Try to open login form (via the user-agent)

657  {
658  return waitForResourceOwnerAndGrantLoginForm(authorizeUrl, authorizationRequest, true);
659  }
String waitForResourceOwnerAndGrantLoginForm(String authorizeUrl, AuthorizationRequest authorizationRequest, boolean cleanupCookies)
Definition: BaseTest.java:616

メンバ詳解

◆ authorizationEndpoint

String org.xdi.oxauth.BaseTest.authorizationEndpoint
protectedinherited

◆ authorizationPageEndpoint

String org.xdi.oxauth.BaseTest.authorizationPageEndpoint
protectedinherited

◆ checkSessionIFrame

String org.xdi.oxauth.BaseTest.checkSessionIFrame
protectedinherited

◆ clientInfoEndpoint

String org.xdi.oxauth.BaseTest.clientInfoEndpoint
protectedinherited

◆ configurationEndpoint

String org.xdi.oxauth.BaseTest.configurationEndpoint
protectedinherited

◆ driver

WebDriver org.xdi.oxauth.BaseTest.driver
protectedinherited

◆ endSessionEndpoint

String org.xdi.oxauth.BaseTest.endSessionEndpoint
protectedinherited

◆ gluuConfigurationEndpoint

String org.xdi.oxauth.BaseTest.gluuConfigurationEndpoint
protectedinherited

◆ idGenEndpoint

String org.xdi.oxauth.BaseTest.idGenEndpoint
protectedinherited

◆ introspectionEndpoint

String org.xdi.oxauth.BaseTest.introspectionEndpoint
protectedinherited

◆ jwksUri

String org.xdi.oxauth.BaseTest.jwksUri
protectedinherited

◆ registrationEndpoint

String org.xdi.oxauth.BaseTest.registrationEndpoint
protectedinherited

◆ scopeToClaimsMapping

Map<String, List<String> > org.xdi.oxauth.BaseTest.scopeToClaimsMapping
protectedinherited

◆ testData

FileConfiguration org.xdi.oxauth.ConfigurableTest.testData
staticinherited

◆ tokenEndpoint

String org.xdi.oxauth.BaseTest.tokenEndpoint
protectedinherited

◆ userInfoEndpoint

String org.xdi.oxauth.BaseTest.userInfoEndpoint
protectedinherited

このクラス詳解は次のファイルから抽出されました: