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

公開メンバ関数

void requestClaimsIndividuallyRequestObjectSigningAlgNoneUserInfoSignedResponseJson (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectSigningAlgNoneUserInfoSignedResponsAlgNone (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectSigningAlgHS256UserInfoSignedResponseAlgHS256 (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectSigningAlgHS384UserInfoSignedResponseAlgHS384 (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectSigningAlgHS512UserInfoSignedResponseAlgHS512 (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectSigningAlgRS256UserInfoSignedResponseAlgRS256 (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri, final String keyId, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientJwksUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectSigningAlgRS384UserInfoSignedResponseAlgRS384 (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri, final String keyId, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientJwksUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectSigningAlgRS512UserInfoSignedResponseAlgRS512 (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri, final String keyId, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientJwksUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectSigningAlgES256UserInfoSignedResponseAlgES256 (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri, final String keyId, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientJwksUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectSigningAlgES384UserInfoSignedResponseAlgES384 (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri, final String keyId, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientJwksUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectSigningAlgES512UserInfoSignedResponseAlgES512 (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri, final String keyId, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientJwksUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectEncryptionAlgA128KWEncA128GCMUserInfoEncryptedResponseAlgA128KWEncA128GCM (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectEncryptionAlgA256KWEncA256GCMUserInfoEncryptedResponseAlgA256KWEncA256GCM (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectEncryptionAlgRSA1_5EncA128CBC_PLUS_HS256UserInfoEncryptedResponseAlgRSA1_5EncA128CBC_PLUS_HS256 (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientKeyId, final String clientJwksUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectEncryptionAlgRSA1_5EncA256CBC_PLUS_HS512UserInfoEncryptedResponseAlgRSA1_5EncA256CBC_PLUS_HS512 (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientKeyId, final String clientJwksUri) throws Exception
 
void requestClaimsIndividuallyRequestObjectEncryptionAlgRSA_OAEPEncA256GCMUserInfoEncryptedResponseAlgRSA_OAEPEncA256GCM (final String userId, final String userSecret, final String redirectUris, final String redirectUri, final String sectorIdentifierUri, final String dnName, final String keyStoreFile, final String keyStoreSecret, final String clientKeyId, final String clientJwksUri) 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
バージョン
May 30, 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

◆ 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  }

◆ requestClaimsIndividuallyRequestObjectEncryptionAlgA128KWEncA128GCMUserInfoEncryptedResponseAlgA128KWEncA128GCM()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectEncryptionAlgA128KWEncA128GCMUserInfoEncryptedResponseAlgA128KWEncA128GCM ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri 
) throws Exception
inline
1655  {
1656  showTitle("requestClaimsIndividuallyRequestObjectEncryptionAlgA128KWEncA128GCMUserInfoEncryptedResponseAlgA128KWEncA128GCM");
1657 
1658  List<ResponseType> responseTypes = Arrays.asList(
1661 
1662  // 1. Register client
1663  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1664  StringUtils.spaceSeparatedToList(redirectUris));
1665  registerRequest.setResponseTypes(responseTypes);
1666  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1673  registerRequest.setClaims(Arrays.asList(
1674  JwtClaimName.NAME,
1675  JwtClaimName.NICKNAME,
1676  JwtClaimName.GIVEN_NAME,
1677  JwtClaimName.FAMILY_NAME,
1678  JwtClaimName.PICTURE,
1679  JwtClaimName.ZONEINFO,
1680  JwtClaimName.LOCALE,
1681  JwtClaimName.ADDRESS_STREET_ADDRESS,
1682  JwtClaimName.ADDRESS_LOCALITY,
1683  JwtClaimName.ADDRESS_REGION,
1684  JwtClaimName.ADDRESS_POSTAL_CODE,
1685  JwtClaimName.ADDRESS_COUNTRY));
1686 
1687  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1688  registerClient.setRequest(registerRequest);
1689  RegisterResponse registerResponse = registerClient.exec();
1690 
1691  showClient(registerClient);
1692  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1693  assertNotNull(registerResponse.getClientId());
1694  assertNotNull(registerResponse.getClientSecret());
1695  assertNotNull(registerResponse.getRegistrationAccessToken());
1696  assertNotNull(registerResponse.getClientIdIssuedAt());
1697  assertNotNull(registerResponse.getClientSecretExpiresAt());
1698 
1699  String clientId = registerResponse.getClientId();
1700  String clientSecret = registerResponse.getClientSecret();
1701 
1702  // 2. Request authorization
1703  List<String> scopes = Arrays.asList("openid", "clientinfo");
1704  String nonce = UUID.randomUUID().toString();
1705  String state = UUID.randomUUID().toString();
1706 
1707  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1708  authorizationRequest.setState(state);
1709 
1710  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
1711  authorizationRequest,
1714  clientSecret);
1715  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
1716  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1717  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1718  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1719  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1720  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1721  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
1722  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
1723  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
1724  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
1725  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
1726  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
1727  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
1728  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
1729  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
1730  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
1731  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
1732  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1733  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1734  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1735  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1736  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1737  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
1738  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1739  authorizationRequest.setRequest(authJwt);
1740 
1742  authorizationEndpoint, authorizationRequest, userId, userSecret);
1743 
1744  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1745  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1746  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1747  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1748  assertNotNull(authorizationResponse.getState(), "The state is null");
1749 
1750  String idToken = authorizationResponse.getIdToken();
1751  String accessToken = authorizationResponse.getAccessToken();
1752 
1753  // 3. Validate id_token
1754  Jwe jwe = Jwe.parse(idToken, null, clientSecret.getBytes(Util.UTF8_STRING_ENCODING));
1755  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1756  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1757  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1758  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1759  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1760  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1761  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1762  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1763  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1764  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.NAME));
1765  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
1766  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
1767  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
1768  assertNull(jwe.getClaims().getClaimAsString(JwtClaimName.EMAIL));
1769  assertNull(jwe.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
1770 
1771  // 4. Request user info
1772  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1773  userInfoClient.setSharedKey(clientSecret);
1774  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
1775 
1776  showClient(userInfoClient);
1777  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1778  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1779  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
1780  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
1781  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
1782  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
1783  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
1784  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
1785  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
1786  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
1787  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
1788  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
1789  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
1790  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
1791  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
1792  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
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
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
void setRequestObjectEncryptionAlg(KeyEncryptionAlgorithm requestObjectEncryptionAlg)
Definition: RegisterRequest.java:684
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
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

◆ requestClaimsIndividuallyRequestObjectEncryptionAlgA256KWEncA256GCMUserInfoEncryptedResponseAlgA256KWEncA256GCM()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectEncryptionAlgA256KWEncA256GCMUserInfoEncryptedResponseAlgA256KWEncA256GCM ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri 
) throws Exception
inline
1798  {
1799  showTitle("requestClaimsIndividuallyRequestObjectEncryptionAlgA256KWEncA256GCMUserInfoEncryptedResponseAlgA256KWEncA256GCM");
1800 
1801  List<ResponseType> responseTypes = Arrays.asList(
1804 
1805  // 1. Register client
1806  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1807  StringUtils.spaceSeparatedToList(redirectUris));
1808  registerRequest.setResponseTypes(responseTypes);
1809  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1816  registerRequest.setClaims(Arrays.asList(
1817  JwtClaimName.NAME,
1818  JwtClaimName.NICKNAME,
1819  JwtClaimName.GIVEN_NAME,
1820  JwtClaimName.FAMILY_NAME,
1821  JwtClaimName.PICTURE,
1822  JwtClaimName.ZONEINFO,
1823  JwtClaimName.LOCALE,
1824  JwtClaimName.ADDRESS_STREET_ADDRESS,
1825  JwtClaimName.ADDRESS_LOCALITY,
1826  JwtClaimName.ADDRESS_REGION,
1827  JwtClaimName.ADDRESS_POSTAL_CODE,
1828  JwtClaimName.ADDRESS_COUNTRY));
1829 
1830  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1831  registerClient.setRequest(registerRequest);
1832  RegisterResponse registerResponse = registerClient.exec();
1833 
1834  showClient(registerClient);
1835  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1836  assertNotNull(registerResponse.getClientId());
1837  assertNotNull(registerResponse.getClientSecret());
1838  assertNotNull(registerResponse.getRegistrationAccessToken());
1839  assertNotNull(registerResponse.getClientIdIssuedAt());
1840  assertNotNull(registerResponse.getClientSecretExpiresAt());
1841 
1842  String clientId = registerResponse.getClientId();
1843  String clientSecret = registerResponse.getClientSecret();
1844 
1845  // 2. Request authorization
1846  List<String> scopes = Arrays.asList("openid", "clientinfo");
1847  String nonce = UUID.randomUUID().toString();
1848  String state = UUID.randomUUID().toString();
1849 
1850  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1851  authorizationRequest.setState(state);
1852 
1853  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
1854  authorizationRequest,
1857  clientSecret);
1858  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
1859  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1860  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1861  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1862  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1863  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1864  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
1865  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
1866  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
1867  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
1868  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
1869  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
1870  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
1871  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
1872  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
1873  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
1874  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
1875  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1876  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1877  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1878  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1879  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1880  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
1881  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1882  authorizationRequest.setRequest(authJwt);
1883 
1885  authorizationEndpoint, authorizationRequest, userId, userSecret);
1886 
1887  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1888  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1889  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1890  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1891  assertNotNull(authorizationResponse.getState(), "The state is null");
1892 
1893  String idToken = authorizationResponse.getIdToken();
1894  String accessToken = authorizationResponse.getAccessToken();
1895 
1896  // 3. Validate id_token
1897  Jwe jwe = Jwe.parse(idToken, null, clientSecret.getBytes(Util.UTF8_STRING_ENCODING));
1898  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1899  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1900  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1901  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1902  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1903  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1904  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1905  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1906  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1907  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.NAME));
1908  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
1909  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
1910  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
1911  assertNull(jwe.getClaims().getClaimAsString(JwtClaimName.EMAIL));
1912  assertNull(jwe.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
1913 
1914  // 4. Request user info
1915  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1916  userInfoClient.setSharedKey(clientSecret);
1917  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
1918 
1919  showClient(userInfoClient);
1920  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1921  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1922  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
1923  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
1924  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
1925  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
1926  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
1927  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
1928  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
1929  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
1930  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
1931  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
1932  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
1933  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
1934  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
1935  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
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
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
void setRequestObjectEncryptionAlg(KeyEncryptionAlgorithm requestObjectEncryptionAlg)
Definition: RegisterRequest.java:684
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
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

◆ requestClaimsIndividuallyRequestObjectEncryptionAlgRSA1_5EncA128CBC_PLUS_HS256UserInfoEncryptedResponseAlgRSA1_5EncA128CBC_PLUS_HS256()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectEncryptionAlgRSA1_5EncA128CBC_PLUS_HS256UserInfoEncryptedResponseAlgRSA1_5EncA128CBC_PLUS_HS256 ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientKeyId,
final String  clientJwksUri 
) throws Exception
inline
1943  {
1944  showTitle("requestClaimsIndividuallyRequestObjectEncryptionAlgRSA1_5EncA128CBC_PLUS_HS256UserInfoEncryptedResponseAlgRSA1_5EncA128CBC_PLUS_HS256");
1945 
1946  List<ResponseType> responseTypes = Arrays.asList(
1949 
1950  // 1. Register client
1951  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1952  StringUtils.spaceSeparatedToList(redirectUris));
1953  registerRequest.setResponseTypes(responseTypes);
1954  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1955  registerRequest.setJwksUri(clientJwksUri);
1962  registerRequest.setClaims(Arrays.asList(
1963  JwtClaimName.NAME,
1964  JwtClaimName.NICKNAME,
1965  JwtClaimName.GIVEN_NAME,
1966  JwtClaimName.FAMILY_NAME,
1967  JwtClaimName.PICTURE,
1968  JwtClaimName.ZONEINFO,
1969  JwtClaimName.LOCALE,
1970  JwtClaimName.ADDRESS_STREET_ADDRESS,
1971  JwtClaimName.ADDRESS_LOCALITY,
1972  JwtClaimName.ADDRESS_REGION,
1973  JwtClaimName.ADDRESS_POSTAL_CODE,
1974  JwtClaimName.ADDRESS_COUNTRY));
1975 
1976  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1977  registerClient.setRequest(registerRequest);
1978  RegisterResponse registerResponse = registerClient.exec();
1979 
1980  showClient(registerClient);
1981  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1982  assertNotNull(registerResponse.getClientId());
1983  assertNotNull(registerResponse.getClientSecret());
1984  assertNotNull(registerResponse.getRegistrationAccessToken());
1985  assertNotNull(registerResponse.getClientIdIssuedAt());
1986  assertNotNull(registerResponse.getClientSecretExpiresAt());
1987 
1988  String clientId = registerResponse.getClientId();
1989  String clientSecret = registerResponse.getClientSecret();
1990 
1991  // 2. Choose encryption key
1992  JwkClient jwkClient = new JwkClient(jwksUri);
1993  JwkResponse jwkResponse = jwkClient.exec();
1994  String serverKeyId = jwkResponse.getKeyId(SignatureAlgorithm.RS256);
1995  assertNotNull(serverKeyId);
1996 
1997  // 3. Request authorization
1998  JSONObject jwks = JwtUtil.getJSONWebKeys(jwksUri);
1999  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
2000 
2001  List<String> scopes = Arrays.asList("openid", "clientinfo");
2002  String nonce = UUID.randomUUID().toString();
2003  String state = UUID.randomUUID().toString();
2004 
2005  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2006  authorizationRequest.setState(state);
2007 
2008  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest,
2010  jwtAuthorizationRequest.setKeyId(serverKeyId);
2011  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
2012  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
2013  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
2014  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
2015  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
2016  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
2017  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
2018  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
2019  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
2020  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
2021  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
2022  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
2023  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
2024  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
2025  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
2026  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
2027  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
2028  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
2029  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
2030  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
2031  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
2032  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
2033  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
2034  String authJwt = jwtAuthorizationRequest.getEncodedJwt(jwks);
2035  authorizationRequest.setRequest(authJwt);
2036 
2038  authorizationEndpoint, authorizationRequest, userId, userSecret);
2039 
2040  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2041  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2042  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2043  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2044  assertNotNull(authorizationResponse.getState(), "The state is null");
2045 
2046  String idToken = authorizationResponse.getIdToken();
2047  String accessToken = authorizationResponse.getAccessToken();
2048 
2049  // 4. Validate id_token
2050  PrivateKey privateKey = cryptoProvider.getPrivateKey(clientKeyId);
2051 
2052  Jwe jwe = Jwe.parse(idToken, privateKey, null);
2053  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2054  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2055  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2056  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2057  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2058  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2059  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2060  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2061  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2062  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.NAME));
2063  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
2064  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
2065  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
2066  assertNull(jwe.getClaims().getClaimAsString(JwtClaimName.EMAIL));
2067  assertNull(jwe.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
2068 
2069  // 5. Request user info
2070  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2071  userInfoClient.setPrivateKey(privateKey);
2072  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
2073 
2074  showClient(userInfoClient);
2075  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2076  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2077  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
2078  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
2079  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
2080  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
2081  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
2082  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
2083  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
2084  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
2085  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
2086  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
2087  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
2088  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
2089  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
2090  }
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
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 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
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
void setRequestObjectEncryptionAlg(KeyEncryptionAlgorithm requestObjectEncryptionAlg)
Definition: RegisterRequest.java:684
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

◆ requestClaimsIndividuallyRequestObjectEncryptionAlgRSA1_5EncA256CBC_PLUS_HS512UserInfoEncryptedResponseAlgRSA1_5EncA256CBC_PLUS_HS512()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectEncryptionAlgRSA1_5EncA256CBC_PLUS_HS512UserInfoEncryptedResponseAlgRSA1_5EncA256CBC_PLUS_HS512 ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientKeyId,
final String  clientJwksUri 
) throws Exception
inline
2098  {
2099  showTitle("requestClaimsIndividuallyRequestObjectEncryptionAlgRSA1_5EncA256CBC_PLUS_HS512UserInfoEncryptedResponseAlgRSA1_5EncA256CBC_PLUS_HS512");
2100 
2101  List<ResponseType> responseTypes = Arrays.asList(
2104 
2105  // 1. Register client
2106  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
2107  StringUtils.spaceSeparatedToList(redirectUris));
2108  registerRequest.setResponseTypes(responseTypes);
2109  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
2110  registerRequest.setJwksUri(clientJwksUri);
2117  registerRequest.setClaims(Arrays.asList(
2118  JwtClaimName.NAME,
2119  JwtClaimName.NICKNAME,
2120  JwtClaimName.GIVEN_NAME,
2121  JwtClaimName.FAMILY_NAME,
2122  JwtClaimName.PICTURE,
2123  JwtClaimName.ZONEINFO,
2124  JwtClaimName.LOCALE,
2125  JwtClaimName.ADDRESS_STREET_ADDRESS,
2126  JwtClaimName.ADDRESS_LOCALITY,
2127  JwtClaimName.ADDRESS_REGION,
2128  JwtClaimName.ADDRESS_POSTAL_CODE,
2129  JwtClaimName.ADDRESS_COUNTRY));
2130 
2131  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
2132  registerClient.setRequest(registerRequest);
2133  RegisterResponse registerResponse = registerClient.exec();
2134 
2135  showClient(registerClient);
2136  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
2137  assertNotNull(registerResponse.getClientId());
2138  assertNotNull(registerResponse.getClientSecret());
2139  assertNotNull(registerResponse.getRegistrationAccessToken());
2140  assertNotNull(registerResponse.getClientIdIssuedAt());
2141  assertNotNull(registerResponse.getClientSecretExpiresAt());
2142 
2143  String clientId = registerResponse.getClientId();
2144  String clientSecret = registerResponse.getClientSecret();
2145 
2146  // 2. Choose encryption key
2147  JwkClient jwkClient = new JwkClient(jwksUri);
2148  JwkResponse jwkResponse = jwkClient.exec();
2149  String serverKeyId = jwkResponse.getKeyId(SignatureAlgorithm.RS256);
2150  assertNotNull(serverKeyId);
2151 
2152  // 3. Request authorization
2153  JSONObject jwks = JwtUtil.getJSONWebKeys(jwksUri);
2154  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
2155 
2156  List<String> scopes = Arrays.asList("openid", "clientinfo");
2157  String nonce = UUID.randomUUID().toString();
2158  String state = UUID.randomUUID().toString();
2159 
2160  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2161  authorizationRequest.setState(state);
2162 
2163  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest,
2165  jwtAuthorizationRequest.setKeyId(serverKeyId);
2166  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
2167  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
2168  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
2169  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
2170  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
2171  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
2172  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
2173  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
2174  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
2175  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
2176  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
2177  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
2178  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
2179  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
2180  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
2181  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
2182  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
2183  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
2184  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
2185  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
2186  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
2187  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
2188  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
2189  String authJwt = jwtAuthorizationRequest.getEncodedJwt(jwks);
2190  authorizationRequest.setRequest(authJwt);
2191 
2193  authorizationEndpoint, authorizationRequest, userId, userSecret);
2194 
2195  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2196  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2197  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2198  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2199  assertNotNull(authorizationResponse.getState(), "The state is null");
2200 
2201  String idToken = authorizationResponse.getIdToken();
2202  String accessToken = authorizationResponse.getAccessToken();
2203 
2204  // 4. Validate id_token
2205  PrivateKey privateKey = cryptoProvider.getPrivateKey(clientKeyId);
2206 
2207  Jwe jwe = Jwe.parse(idToken, privateKey, null);
2208  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2209  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2210  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2211  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2212  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2213  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2214  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2215  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2216  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2217  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.NAME));
2218  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
2219  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
2220  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
2221  assertNull(jwe.getClaims().getClaimAsString(JwtClaimName.EMAIL));
2222  assertNull(jwe.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
2223 
2224  // 5. Request user info
2225  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2226  userInfoClient.setPrivateKey(privateKey);
2227  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
2228 
2229  showClient(userInfoClient);
2230  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2231  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2232  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
2233  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
2234  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
2235  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
2236  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
2237  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
2238  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
2239  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
2240  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
2241  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
2242  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
2243  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
2244  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
2245  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
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 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
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
Definition: KeyEncryptionAlgorithm.java:12
void setUserInfoEncryptedResponseEnc(BlockEncryptionAlgorithm userInfoEncryptedResponseEnc)
Definition: RegisterRequest.java:646
void setRequestObjectEncryptionAlg(KeyEncryptionAlgorithm requestObjectEncryptionAlg)
Definition: RegisterRequest.java:684
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

◆ requestClaimsIndividuallyRequestObjectEncryptionAlgRSA_OAEPEncA256GCMUserInfoEncryptedResponseAlgRSA_OAEPEncA256GCM()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectEncryptionAlgRSA_OAEPEncA256GCMUserInfoEncryptedResponseAlgRSA_OAEPEncA256GCM ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientKeyId,
final String  clientJwksUri 
) throws Exception
inline
2253  {
2254  showTitle("requestClaimsIndividuallyRequestObjectEncryptionAlgRSA_OAEPEncA256GCMUserInfoEncryptedResponseAlgRSA_OAEPEncA256GCM");
2255 
2256  List<ResponseType> responseTypes = Arrays.asList(
2259 
2260  // 1. Register client
2261  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
2262  StringUtils.spaceSeparatedToList(redirectUris));
2263  registerRequest.setResponseTypes(responseTypes);
2264  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
2265  registerRequest.setJwksUri(clientJwksUri);
2272  registerRequest.setClaims(Arrays.asList(
2273  JwtClaimName.NAME,
2274  JwtClaimName.NICKNAME,
2275  JwtClaimName.GIVEN_NAME,
2276  JwtClaimName.FAMILY_NAME,
2277  JwtClaimName.PICTURE,
2278  JwtClaimName.ZONEINFO,
2279  JwtClaimName.LOCALE,
2280  JwtClaimName.ADDRESS_STREET_ADDRESS,
2281  JwtClaimName.ADDRESS_LOCALITY,
2282  JwtClaimName.ADDRESS_REGION,
2283  JwtClaimName.ADDRESS_POSTAL_CODE,
2284  JwtClaimName.ADDRESS_COUNTRY));
2285 
2286  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
2287  registerClient.setRequest(registerRequest);
2288  RegisterResponse registerResponse = registerClient.exec();
2289 
2290  showClient(registerClient);
2291  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
2292  assertNotNull(registerResponse.getClientId());
2293  assertNotNull(registerResponse.getClientSecret());
2294  assertNotNull(registerResponse.getRegistrationAccessToken());
2295  assertNotNull(registerResponse.getClientIdIssuedAt());
2296  assertNotNull(registerResponse.getClientSecretExpiresAt());
2297 
2298  String clientId = registerResponse.getClientId();
2299  String clientSecret = registerResponse.getClientSecret();
2300 
2301  // 2. Choose encryption key
2302  JwkClient jwkClient = new JwkClient(jwksUri);
2303  JwkResponse jwkResponse = jwkClient.exec();
2304  String serverKeyId = jwkResponse.getKeyId(SignatureAlgorithm.RS256);
2305  assertNotNull(serverKeyId);
2306 
2307  // 3. Request authorization
2308  JSONObject jwks = JwtUtil.getJSONWebKeys(jwksUri);
2309  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
2310 
2311  List<String> scopes = Arrays.asList("openid", "clientinfo");
2312  String nonce = UUID.randomUUID().toString();
2313  String state = UUID.randomUUID().toString();
2314 
2315  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
2316  authorizationRequest.setState(state);
2317 
2318  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(authorizationRequest,
2320  jwtAuthorizationRequest.setKeyId(serverKeyId);
2321  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
2322  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
2323  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
2324  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
2325  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
2326  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
2327  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
2328  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
2329  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
2330  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
2331  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
2332  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
2333  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
2334  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
2335  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
2336  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
2337  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
2338  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
2339  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
2340  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
2341  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
2342  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
2343  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
2344  String authJwt = jwtAuthorizationRequest.getEncodedJwt(jwks);
2345  authorizationRequest.setRequest(authJwt);
2346 
2348  authorizationEndpoint, authorizationRequest, userId, userSecret);
2349 
2350  assertNotNull(authorizationResponse.getLocation(), "The location is null");
2351  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
2352  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
2353  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
2354  assertNotNull(authorizationResponse.getState(), "The state is null");
2355 
2356  String idToken = authorizationResponse.getIdToken();
2357  String accessToken = authorizationResponse.getAccessToken();
2358 
2359  // 4. Validate id_token
2360  PrivateKey privateKey = cryptoProvider.getPrivateKey(clientKeyId);
2361 
2362  Jwe jwe = Jwe.parse(idToken, privateKey, null);
2363  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.TYPE));
2364  assertNotNull(jwe.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
2365  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUER));
2366  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
2367  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
2368  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
2369  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
2370  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
2371  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
2372  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.NAME));
2373  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
2374  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
2375  assertNotNull(jwe.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
2376  assertNull(jwe.getClaims().getClaimAsString(JwtClaimName.EMAIL));
2377  assertNull(jwe.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
2378 
2379  // 5. Request user info
2380  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
2381  userInfoClient.setPrivateKey(privateKey);
2382  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
2383 
2384  showClient(userInfoClient);
2385  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
2386  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
2387  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
2388  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
2389  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
2390  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
2391  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
2392  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
2393  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
2394  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
2395  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
2396  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
2397  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
2398  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
2399  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
2400  }
ID_TOKEN
Definition: ResponseType.java:47
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
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 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
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
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
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

◆ requestClaimsIndividuallyRequestObjectSigningAlgES256UserInfoSignedResponseAlgES256()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectSigningAlgES256UserInfoSignedResponseAlgES256 ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri,
final String  keyId,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientJwksUri 
) throws Exception
inline
1210  {
1211  showTitle("requestClaimsIndividuallyRequestObjectSigningAlgES256UserInfoSignedResponseAlgES256");
1212 
1213  List<ResponseType> responseTypes = Arrays.asList(
1216 
1217  // 1. Register client
1218  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1219  StringUtils.spaceSeparatedToList(redirectUris));
1220  registerRequest.setResponseTypes(responseTypes);
1221  registerRequest.setJwksUri(clientJwksUri);
1222  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1226  registerRequest.setClaims(Arrays.asList(
1227  JwtClaimName.NAME,
1228  JwtClaimName.NICKNAME,
1229  JwtClaimName.GIVEN_NAME,
1230  JwtClaimName.FAMILY_NAME,
1231  JwtClaimName.PICTURE,
1232  JwtClaimName.ZONEINFO,
1233  JwtClaimName.LOCALE,
1234  JwtClaimName.ADDRESS_STREET_ADDRESS,
1235  JwtClaimName.ADDRESS_LOCALITY,
1236  JwtClaimName.ADDRESS_REGION,
1237  JwtClaimName.ADDRESS_POSTAL_CODE,
1238  JwtClaimName.ADDRESS_COUNTRY));
1239 
1240  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1241  registerClient.setRequest(registerRequest);
1242  RegisterResponse registerResponse = registerClient.exec();
1243 
1244  showClient(registerClient);
1245  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1246  assertNotNull(registerResponse.getClientId());
1247  assertNotNull(registerResponse.getClientSecret());
1248  assertNotNull(registerResponse.getRegistrationAccessToken());
1249  assertNotNull(registerResponse.getClientIdIssuedAt());
1250  assertNotNull(registerResponse.getClientSecretExpiresAt());
1251 
1252  String clientId = registerResponse.getClientId();
1253 
1254  // 2. Request authorization
1255  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
1256 
1257  List<String> scopes = Arrays.asList("openid", "clientinfo");
1258  String nonce = UUID.randomUUID().toString();
1259  String state = UUID.randomUUID().toString();
1260 
1261  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1262  authorizationRequest.setState(state);
1263 
1264  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
1265  authorizationRequest, SignatureAlgorithm.ES256, cryptoProvider);
1266  jwtAuthorizationRequest.setKeyId(keyId);
1267  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
1268  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1269  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1270  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1271  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1272  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1273  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
1274  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
1275  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
1276  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
1277  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
1278  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
1279  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
1280  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
1281  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
1282  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
1283  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
1284  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1285  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1286  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1287  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1288  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1289  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
1290  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1291  authorizationRequest.setRequest(authJwt);
1292 
1294  authorizationEndpoint, authorizationRequest, userId, userSecret);
1295 
1296  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1297  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1298  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1299  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1300  assertNotNull(authorizationResponse.getState(), "The state is null");
1301 
1302  String idToken = authorizationResponse.getIdToken();
1303  String accessToken = authorizationResponse.getAccessToken();
1304 
1305  // 3. Validate id_token
1306  Jwt jwt = Jwt.parse(idToken);
1307  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1308  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1309  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1310  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1311  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1312  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1313  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1314  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1315  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1316  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NAME));
1317  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
1318  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
1319  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
1320  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL));
1321  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
1322 
1324  jwksUri,
1325  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
1326  ECDSASigner ecdsaSigner = new ECDSASigner(SignatureAlgorithm.ES256, publicKey);
1327 
1328  assertTrue(ecdsaSigner.validate(jwt));
1329 
1330  // 4. Request user info
1331  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1332  userInfoClient.setJwksUri(jwksUri);
1333  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
1334 
1335  showClient(userInfoClient);
1336  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1337  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1338  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
1339  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
1340  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
1341  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
1342  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
1343  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
1344  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
1345  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
1346  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
1347  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
1348  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
1349  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
1350  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
1351  }
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
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
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
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
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

◆ requestClaimsIndividuallyRequestObjectSigningAlgES384UserInfoSignedResponseAlgES384()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectSigningAlgES384UserInfoSignedResponseAlgES384 ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri,
final String  keyId,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientJwksUri 
) throws Exception
inline
1359  {
1360  showTitle("requestClaimsIndividuallyRequestObjectSigningAlgES384UserInfoSignedResponseAlgES384");
1361 
1362  List<ResponseType> responseTypes = Arrays.asList(
1365 
1366  // 1. Register client
1367  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1368  StringUtils.spaceSeparatedToList(redirectUris));
1369  registerRequest.setResponseTypes(responseTypes);
1370  registerRequest.setJwksUri(clientJwksUri);
1371  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1375  registerRequest.setClaims(Arrays.asList(
1376  JwtClaimName.NAME,
1377  JwtClaimName.NICKNAME,
1378  JwtClaimName.GIVEN_NAME,
1379  JwtClaimName.FAMILY_NAME,
1380  JwtClaimName.PICTURE,
1381  JwtClaimName.ZONEINFO,
1382  JwtClaimName.LOCALE,
1383  JwtClaimName.ADDRESS_STREET_ADDRESS,
1384  JwtClaimName.ADDRESS_LOCALITY,
1385  JwtClaimName.ADDRESS_REGION,
1386  JwtClaimName.ADDRESS_POSTAL_CODE,
1387  JwtClaimName.ADDRESS_COUNTRY));
1388 
1389  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1390  registerClient.setRequest(registerRequest);
1391  RegisterResponse registerResponse = registerClient.exec();
1392 
1393  showClient(registerClient);
1394  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1395  assertNotNull(registerResponse.getClientId());
1396  assertNotNull(registerResponse.getClientSecret());
1397  assertNotNull(registerResponse.getRegistrationAccessToken());
1398  assertNotNull(registerResponse.getClientIdIssuedAt());
1399  assertNotNull(registerResponse.getClientSecretExpiresAt());
1400 
1401  String clientId = registerResponse.getClientId();
1402 
1403  // 2. Request authorization
1404  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
1405 
1406  List<String> scopes = Arrays.asList("openid", "clientinfo");
1407  String nonce = UUID.randomUUID().toString();
1408  String state = UUID.randomUUID().toString();
1409 
1410  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1411  authorizationRequest.setState(state);
1412 
1413  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
1414  authorizationRequest, SignatureAlgorithm.ES384, cryptoProvider);
1415  jwtAuthorizationRequest.setKeyId(keyId);
1416  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
1417  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1418  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1419  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1420  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1421  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1422  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
1423  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
1424  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
1425  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
1426  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
1427  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
1428  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
1429  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
1430  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
1431  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
1432  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
1433  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1434  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1435  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1436  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1437  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1438  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
1439  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1440  authorizationRequest.setRequest(authJwt);
1441 
1443  authorizationEndpoint, authorizationRequest, userId, userSecret);
1444 
1445  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1446  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1447  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1448  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1449  assertNotNull(authorizationResponse.getState(), "The state is null");
1450 
1451  String idToken = authorizationResponse.getIdToken();
1452  String accessToken = authorizationResponse.getAccessToken();
1453 
1454  // 3. Validate id_token
1455  Jwt jwt = Jwt.parse(idToken);
1456  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1457  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1458  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1459  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1460  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1461  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1462  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1463  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1464  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1465  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NAME));
1466  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
1467  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
1468  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
1469  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL));
1470  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
1471 
1473  jwksUri,
1474  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
1475  ECDSASigner ecdsaSigner = new ECDSASigner(SignatureAlgorithm.ES384, publicKey);
1476 
1477  assertTrue(ecdsaSigner.validate(jwt));
1478 
1479  // 4. Request user info
1480  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1481  userInfoClient.setJwksUri(jwksUri);
1482  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
1483 
1484  showClient(userInfoClient);
1485  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1486  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1487  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
1488  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
1489  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
1490  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
1491  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
1492  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
1493  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
1494  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
1495  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
1496  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
1497  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
1498  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
1499  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
1500  }
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
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
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
ES384
Definition: SignatureAlgorithm.java:30
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
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

◆ requestClaimsIndividuallyRequestObjectSigningAlgES512UserInfoSignedResponseAlgES512()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectSigningAlgES512UserInfoSignedResponseAlgES512 ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri,
final String  keyId,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientJwksUri 
) throws Exception
inline
1508  {
1509  showTitle("requestClaimsIndividuallyRequestObjectSigningAlgES512UserInfoSignedResponseAlgES512");
1510 
1511  List<ResponseType> responseTypes = Arrays.asList(
1514 
1515  // 1. Register client
1516  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1517  StringUtils.spaceSeparatedToList(redirectUris));
1518  registerRequest.setResponseTypes(responseTypes);
1519  registerRequest.setJwksUri(clientJwksUri);
1520  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1524  registerRequest.setClaims(Arrays.asList(
1525  JwtClaimName.NAME,
1526  JwtClaimName.NICKNAME,
1527  JwtClaimName.GIVEN_NAME,
1528  JwtClaimName.FAMILY_NAME,
1529  JwtClaimName.PICTURE,
1530  JwtClaimName.ZONEINFO,
1531  JwtClaimName.LOCALE,
1532  JwtClaimName.ADDRESS_STREET_ADDRESS,
1533  JwtClaimName.ADDRESS_LOCALITY,
1534  JwtClaimName.ADDRESS_REGION,
1535  JwtClaimName.ADDRESS_POSTAL_CODE,
1536  JwtClaimName.ADDRESS_COUNTRY));
1537 
1538  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1539  registerClient.setRequest(registerRequest);
1540  RegisterResponse registerResponse = registerClient.exec();
1541 
1542  showClient(registerClient);
1543  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1544  assertNotNull(registerResponse.getClientId());
1545  assertNotNull(registerResponse.getClientSecret());
1546  assertNotNull(registerResponse.getRegistrationAccessToken());
1547  assertNotNull(registerResponse.getClientIdIssuedAt());
1548  assertNotNull(registerResponse.getClientSecretExpiresAt());
1549 
1550  String clientId = registerResponse.getClientId();
1551 
1552  // 2. Request authorization
1553  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
1554 
1555  List<String> scopes = Arrays.asList("openid", "clientinfo");
1556  String nonce = UUID.randomUUID().toString();
1557  String state = UUID.randomUUID().toString();
1558 
1559  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1560  authorizationRequest.setState(state);
1561 
1562  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
1563  authorizationRequest, SignatureAlgorithm.ES512, cryptoProvider);
1564  jwtAuthorizationRequest.setKeyId(keyId);
1565  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
1566  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1567  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1568  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1569  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1570  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1571  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
1572  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
1573  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
1574  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
1575  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
1576  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
1577  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
1578  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
1579  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
1580  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
1581  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
1582  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1583  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1584  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1585  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1586  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1587  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
1588  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1589  authorizationRequest.setRequest(authJwt);
1590 
1592  authorizationEndpoint, authorizationRequest, userId, userSecret);
1593 
1594  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1595  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1596  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1597  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1598  assertNotNull(authorizationResponse.getState(), "The state is null");
1599 
1600  String idToken = authorizationResponse.getIdToken();
1601  String accessToken = authorizationResponse.getAccessToken();
1602 
1603  // 3. Validate id_token
1604  Jwt jwt = Jwt.parse(idToken);
1605  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1606  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1607  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1608  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1609  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1610  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1611  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1612  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1613  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1614  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NAME));
1615  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
1616  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
1617  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
1618  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL));
1619  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
1620 
1622  jwksUri,
1623  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
1624  ECDSASigner ecdsaSigner = new ECDSASigner(SignatureAlgorithm.ES512, publicKey);
1625 
1626  assertTrue(ecdsaSigner.validate(jwt));
1627 
1628  // 4. Request user info
1629  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1630  userInfoClient.setJwksUri(jwksUri);
1631  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
1632 
1633  showClient(userInfoClient);
1634  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1635  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1636  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
1637  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
1638  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
1639  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
1640  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
1641  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
1642  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
1643  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
1644  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
1645  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
1646  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
1647  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
1648  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
1649  }
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
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
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
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
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

◆ requestClaimsIndividuallyRequestObjectSigningAlgHS256UserInfoSignedResponseAlgHS256()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectSigningAlgHS256UserInfoSignedResponseAlgHS256 ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri 
) throws Exception
inline
335  {
336  showTitle("requestClaimsIndividuallyRequestObjectSigningAlgHS256UserInfoSignedResponseAlgHS256");
337 
338  List<ResponseType> responseTypes = Arrays.asList(
341 
342  // 1. Register client
343  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
344  StringUtils.spaceSeparatedToList(redirectUris));
345  registerRequest.setResponseTypes(responseTypes);
346  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
350  registerRequest.setClaims(Arrays.asList(
351  JwtClaimName.NAME,
352  JwtClaimName.NICKNAME,
353  JwtClaimName.GIVEN_NAME,
354  JwtClaimName.FAMILY_NAME,
355  JwtClaimName.PICTURE,
356  JwtClaimName.ZONEINFO,
357  JwtClaimName.LOCALE,
358  JwtClaimName.ADDRESS_STREET_ADDRESS,
359  JwtClaimName.ADDRESS_LOCALITY,
360  JwtClaimName.ADDRESS_REGION,
361  JwtClaimName.ADDRESS_POSTAL_CODE,
362  JwtClaimName.ADDRESS_COUNTRY));
363 
364  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
365  registerClient.setRequest(registerRequest);
366  RegisterResponse registerResponse = registerClient.exec();
367 
368  showClient(registerClient);
369  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
370  assertNotNull(registerResponse.getClientId());
371  assertNotNull(registerResponse.getClientSecret());
372  assertNotNull(registerResponse.getRegistrationAccessToken());
373  assertNotNull(registerResponse.getClientIdIssuedAt());
374  assertNotNull(registerResponse.getClientSecretExpiresAt());
375 
376  String clientId = registerResponse.getClientId();
377  String clientSecret = registerResponse.getClientSecret();
378 
379  // 2. Request authorization
380  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider();
381 
382  List<String> scopes = Arrays.asList("openid", "clientinfo");
383  String nonce = UUID.randomUUID().toString();
384  String state = UUID.randomUUID().toString();
385 
386  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
387  authorizationRequest.setState(state);
388 
389  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
390  authorizationRequest, SignatureAlgorithm.HS256, clientSecret, cryptoProvider);
391  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
392  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
393  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
394  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
395  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
396  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
397  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
398  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
399  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
400  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
401  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
402  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
403  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
404  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
405  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
406  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
407  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
408  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
409  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
410  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
411  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
412  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
413  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
414  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
415  authorizationRequest.setRequest(authJwt);
416 
418  authorizationEndpoint, authorizationRequest, userId, userSecret);
419 
420  assertNotNull(authorizationResponse.getLocation(), "The location is null");
421  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
422  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
423  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
424  assertNotNull(authorizationResponse.getState(), "The state is null");
425 
426  String idToken = authorizationResponse.getIdToken();
427  String accessToken = authorizationResponse.getAccessToken();
428 
429  // 3. Validate id_token
430  Jwt jwt = Jwt.parse(idToken);
431  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
432  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
433  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
434  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
435  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
436  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
437  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
438  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
439  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
440  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NAME));
441  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
442  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
443  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
444  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL));
445  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
446 
447  HMACSigner hmacSigner = new HMACSigner(SignatureAlgorithm.HS256, clientSecret);
448  assertTrue(hmacSigner.validate(jwt));
449 
450  // 4. Request user info
451  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
452  userInfoClient.setSharedKey(clientSecret);
453  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
454 
455  showClient(userInfoClient);
456  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
457  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
458  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
459  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
460  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
461  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
462  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
463  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
464  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
465  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
466  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
467  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
468  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
469  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
470  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
471  }
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
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
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
HS256
Definition: SignatureAlgorithm.java:23
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
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

◆ requestClaimsIndividuallyRequestObjectSigningAlgHS384UserInfoSignedResponseAlgHS384()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectSigningAlgHS384UserInfoSignedResponseAlgHS384 ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri 
) throws Exception
inline
477  {
478  showTitle("requestClaimsIndividuallyRequestObjectSigningAlgHS384UserInfoSignedResponseAlgHS384");
479 
480  List<ResponseType> responseTypes = Arrays.asList(
483 
484  // 1. Register client
485  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
486  StringUtils.spaceSeparatedToList(redirectUris));
487  registerRequest.setResponseTypes(responseTypes);
488  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
492  registerRequest.setClaims(Arrays.asList(
493  JwtClaimName.NAME,
494  JwtClaimName.NICKNAME,
495  JwtClaimName.GIVEN_NAME,
496  JwtClaimName.FAMILY_NAME,
497  JwtClaimName.PICTURE,
498  JwtClaimName.ZONEINFO,
499  JwtClaimName.LOCALE,
500  JwtClaimName.ADDRESS_STREET_ADDRESS,
501  JwtClaimName.ADDRESS_LOCALITY,
502  JwtClaimName.ADDRESS_REGION,
503  JwtClaimName.ADDRESS_POSTAL_CODE,
504  JwtClaimName.ADDRESS_COUNTRY));
505 
506  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
507  registerClient.setRequest(registerRequest);
508  RegisterResponse registerResponse = registerClient.exec();
509 
510  showClient(registerClient);
511  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
512  assertNotNull(registerResponse.getClientId());
513  assertNotNull(registerResponse.getClientSecret());
514  assertNotNull(registerResponse.getRegistrationAccessToken());
515  assertNotNull(registerResponse.getClientIdIssuedAt());
516  assertNotNull(registerResponse.getClientSecretExpiresAt());
517 
518  String clientId = registerResponse.getClientId();
519  String clientSecret = registerResponse.getClientSecret();
520 
521  // 2. Request authorization
522  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider();
523 
524  List<String> scopes = Arrays.asList("openid", "clientinfo");
525  String nonce = UUID.randomUUID().toString();
526  String state = UUID.randomUUID().toString();
527 
528  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
529  authorizationRequest.setState(state);
530 
531  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
532  authorizationRequest, SignatureAlgorithm.HS384, clientSecret, cryptoProvider);
533  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
534  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
535  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
536  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
537  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
538  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
539  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
540  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
541  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
542  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
543  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
544  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
545  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
546  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
547  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
548  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
549  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
550  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
551  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
552  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
553  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
554  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
555  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
556  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
557  authorizationRequest.setRequest(authJwt);
558 
560  authorizationEndpoint, authorizationRequest, userId, userSecret);
561 
562  assertNotNull(authorizationResponse.getLocation(), "The location is null");
563  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
564  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
565  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
566  assertNotNull(authorizationResponse.getState(), "The state is null");
567 
568  String idToken = authorizationResponse.getIdToken();
569  String accessToken = authorizationResponse.getAccessToken();
570 
571  // 3. Validate id_token
572  Jwt jwt = Jwt.parse(idToken);
573  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
574  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
575  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
576  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
577  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
578  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
579  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
580  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
581  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
582  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NAME));
583  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
584  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
585  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
586  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL));
587  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
588 
589  HMACSigner hmacSigner = new HMACSigner(SignatureAlgorithm.HS384, clientSecret);
590  assertTrue(hmacSigner.validate(jwt));
591 
592  // 4. Request user info
593  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
594  userInfoClient.setSharedKey(clientSecret);
595  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
596 
597  showClient(userInfoClient);
598  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
599  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
600  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
601  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
602  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
603  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
604  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
605  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
606  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
607  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
608  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
609  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
610  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
611  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
612  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
613  }
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
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
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
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
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

◆ requestClaimsIndividuallyRequestObjectSigningAlgHS512UserInfoSignedResponseAlgHS512()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectSigningAlgHS512UserInfoSignedResponseAlgHS512 ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri 
) throws Exception
inline
619  {
620  showTitle("requestClaimsIndividuallyRequestObjectSigningAlgHS512UserInfoSignedResponseAlgHS512");
621 
622  List<ResponseType> responseTypes = Arrays.asList(
625 
626  // 1. Register client
627  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
628  StringUtils.spaceSeparatedToList(redirectUris));
629  registerRequest.setResponseTypes(responseTypes);
630  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
634  registerRequest.setClaims(Arrays.asList(
635  JwtClaimName.NAME,
636  JwtClaimName.NICKNAME,
637  JwtClaimName.GIVEN_NAME,
638  JwtClaimName.FAMILY_NAME,
639  JwtClaimName.PICTURE,
640  JwtClaimName.ZONEINFO,
641  JwtClaimName.LOCALE,
642  JwtClaimName.ADDRESS_STREET_ADDRESS,
643  JwtClaimName.ADDRESS_LOCALITY,
644  JwtClaimName.ADDRESS_REGION,
645  JwtClaimName.ADDRESS_POSTAL_CODE,
646  JwtClaimName.ADDRESS_COUNTRY));
647 
648  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
649  registerClient.setRequest(registerRequest);
650  RegisterResponse registerResponse = registerClient.exec();
651 
652  showClient(registerClient);
653  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
654  assertNotNull(registerResponse.getClientId());
655  assertNotNull(registerResponse.getClientSecret());
656  assertNotNull(registerResponse.getRegistrationAccessToken());
657  assertNotNull(registerResponse.getClientIdIssuedAt());
658  assertNotNull(registerResponse.getClientSecretExpiresAt());
659 
660  String clientId = registerResponse.getClientId();
661  String clientSecret = registerResponse.getClientSecret();
662 
663  // 2. Request authorization
664  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider();
665 
666  List<String> scopes = Arrays.asList("openid", "clientinfo");
667  String nonce = UUID.randomUUID().toString();
668  String state = UUID.randomUUID().toString();
669 
670  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
671  authorizationRequest.setState(state);
672 
673  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
674  authorizationRequest, SignatureAlgorithm.HS512, clientSecret, cryptoProvider);
675  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
676  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
677  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
678  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
679  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
680  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
681  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
682  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
683  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
684  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
685  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
686  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
687  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
688  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
689  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
690  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
691  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
692  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
693  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
694  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
695  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
696  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
697  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
698  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
699  authorizationRequest.setRequest(authJwt);
700 
702  authorizationEndpoint, authorizationRequest, userId, userSecret);
703 
704  assertNotNull(authorizationResponse.getLocation(), "The location is null");
705  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
706  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
707  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
708  assertNotNull(authorizationResponse.getState(), "The state is null");
709 
710  String idToken = authorizationResponse.getIdToken();
711  String accessToken = authorizationResponse.getAccessToken();
712 
713  // 3. Validate id_token
714  Jwt jwt = Jwt.parse(idToken);
715  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
716  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
717  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
718  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
719  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
720  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
721  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
722  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
723  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
724  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NAME));
725  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
726  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
727  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
728  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL));
729  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
730 
731  HMACSigner hmacSigner = new HMACSigner(SignatureAlgorithm.HS512, clientSecret);
732  assertTrue(hmacSigner.validate(jwt));
733 
734  // 4. Request user info
735  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
736  userInfoClient.setSharedKey(clientSecret);
737  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
738 
739  showClient(userInfoClient);
740  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
741  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
742  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
743  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
744  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
745  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
746  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
747  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
748  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
749  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
750  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
751  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
752  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
753  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
754  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
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
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
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
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
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

◆ requestClaimsIndividuallyRequestObjectSigningAlgNoneUserInfoSignedResponsAlgNone()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectSigningAlgNoneUserInfoSignedResponsAlgNone ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri 
) throws Exception
inline
194  {
195  showTitle("requestClaimsIndividuallyRequestObjectSigningAlgNoneUserInfoSignedResponsAlgNone");
196 
197  List<ResponseType> responseTypes = Arrays.asList(
200 
201  // 1. Register client
202  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
203  StringUtils.spaceSeparatedToList(redirectUris));
204  registerRequest.setResponseTypes(responseTypes);
205  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
209  registerRequest.setClaims(Arrays.asList(
210  JwtClaimName.NAME,
211  JwtClaimName.NICKNAME,
212  JwtClaimName.GIVEN_NAME,
213  JwtClaimName.FAMILY_NAME,
214  JwtClaimName.PICTURE,
215  JwtClaimName.ZONEINFO,
216  JwtClaimName.LOCALE,
217  JwtClaimName.ADDRESS_STREET_ADDRESS,
218  JwtClaimName.ADDRESS_LOCALITY,
219  JwtClaimName.ADDRESS_REGION,
220  JwtClaimName.ADDRESS_POSTAL_CODE,
221  JwtClaimName.ADDRESS_COUNTRY));
222 
223  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
224  registerClient.setRequest(registerRequest);
225  RegisterResponse registerResponse = registerClient.exec();
226 
227  showClient(registerClient);
228  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
229  assertNotNull(registerResponse.getClientId());
230  assertNotNull(registerResponse.getClientSecret());
231  assertNotNull(registerResponse.getRegistrationAccessToken());
232  assertNotNull(registerResponse.getClientIdIssuedAt());
233  assertNotNull(registerResponse.getClientSecretExpiresAt());
234 
235  String clientId = registerResponse.getClientId();
236  String clientSecret = registerResponse.getClientSecret();
237 
238  // 2. Request authorization
239  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider();
240 
241  List<String> scopes = Arrays.asList("openid", "clientinfo");
242  String nonce = UUID.randomUUID().toString();
243  String state = UUID.randomUUID().toString();
244 
245  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
246  authorizationRequest.setState(state);
247 
248  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
249  authorizationRequest, SignatureAlgorithm.NONE, clientSecret, cryptoProvider);
250  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
251  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
252  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
253  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
254  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
255  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
256  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
257  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
258  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
259  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
260  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
261  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
262  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
263  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
264  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
265  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
266  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
267  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
268  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
269  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
270  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
271  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
272  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
273  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
274  authorizationRequest.setRequest(authJwt);
275 
277  authorizationEndpoint, authorizationRequest, userId, userSecret);
278 
279  assertNotNull(authorizationResponse.getLocation(), "The location is null");
280  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
281  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
282  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
283  assertNotNull(authorizationResponse.getState(), "The state is null");
284 
285  String idToken = authorizationResponse.getIdToken();
286  String accessToken = authorizationResponse.getAccessToken();
287 
288  // 3. Validate id_token
289  Jwt jwt = Jwt.parse(idToken);
290  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
291  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
292  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
293  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
294  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
295  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
296  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
297  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
298  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
299  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NAME));
300  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
301  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
302  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
303  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL));
304  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
305 
306  PlainTextSignature signer = new PlainTextSignature();
307  assertTrue(signer.validate(jwt));
308 
309  // 4. Request user info
310  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
311  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
312 
313  showClient(userInfoClient);
314  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
315  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
316  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
317  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
318  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
319  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
320  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
321  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
322  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
323  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
324  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
325  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
326  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
327  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
328  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
329  }
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
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
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
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

◆ requestClaimsIndividuallyRequestObjectSigningAlgNoneUserInfoSignedResponseJson()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectSigningAlgNoneUserInfoSignedResponseJson ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri 
) throws Exception
inline
54  {
55  showTitle("requestClaimsIndividuallyRequestObjectSigningAlgNoneUserInfoSignedResponseJson");
56 
57  List<ResponseType> responseTypes = Arrays.asList(
60 
61  // 1. Register client
62  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
63  StringUtils.spaceSeparatedToList(redirectUris));
64  registerRequest.setResponseTypes(responseTypes);
65  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
68  registerRequest.setClaims(Arrays.asList(
69  JwtClaimName.NAME,
70  JwtClaimName.NICKNAME,
71  JwtClaimName.GIVEN_NAME,
72  JwtClaimName.FAMILY_NAME,
73  JwtClaimName.PICTURE,
74  JwtClaimName.ZONEINFO,
75  JwtClaimName.LOCALE,
76  JwtClaimName.ADDRESS_STREET_ADDRESS,
77  JwtClaimName.ADDRESS_LOCALITY,
78  JwtClaimName.ADDRESS_REGION,
79  JwtClaimName.ADDRESS_POSTAL_CODE,
80  JwtClaimName.ADDRESS_COUNTRY));
81 
83  registerClient.setRequest(registerRequest);
84  RegisterResponse registerResponse = registerClient.exec();
85 
86  showClient(registerClient);
87  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
88  assertNotNull(registerResponse.getClientId());
89  assertNotNull(registerResponse.getClientSecret());
90  assertNotNull(registerResponse.getRegistrationAccessToken());
91  assertNotNull(registerResponse.getClientIdIssuedAt());
92  assertNotNull(registerResponse.getClientSecretExpiresAt());
93 
94  String clientId = registerResponse.getClientId();
95  String clientSecret = registerResponse.getClientSecret();
96 
97  // 2. Request authorization
98  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider();
99 
100  List<String> scopes = Arrays.asList("openid", "clientinfo");
101  String nonce = UUID.randomUUID().toString();
102  String state = UUID.randomUUID().toString();
103 
104  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
105  authorizationRequest.setState(state);
106 
107  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
108  authorizationRequest, SignatureAlgorithm.NONE, clientSecret, cryptoProvider);
109  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
110  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
111  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
112  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
113  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
114  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
115  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
116  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
117  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
118  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
119  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
120  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
121  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
122  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
123  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
124  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
125  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
126  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
127  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
128  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
129  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
130  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
131  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
132  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
133  authorizationRequest.setRequest(authJwt);
134 
136  authorizationEndpoint, authorizationRequest, userId, userSecret);
137 
138  assertNotNull(authorizationResponse.getLocation(), "The location is null");
139  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
140  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
141  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
142  assertNotNull(authorizationResponse.getState(), "The state is null");
143 
144  String idToken = authorizationResponse.getIdToken();
145  String accessToken = authorizationResponse.getAccessToken();
146 
147  // 3. Validate id_token
148  Jwt jwt = Jwt.parse(idToken);
149  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
150  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
151  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
152  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
153  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
154  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
155  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
156  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
157  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
158  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NAME));
159  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
160  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
161  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
162  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL));
163  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
164 
165  PlainTextSignature signer = new PlainTextSignature();
166  assertTrue(signer.validate(jwt));
167 
168  // 4. Request user info
169  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
170  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
171 
172  showClient(userInfoClient);
173  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
174  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
175  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
176  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
177  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
178  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
179  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
180  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
181  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
182  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
183  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
184  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
185  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
186  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
187  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
188  }
ID_TOKEN
Definition: ResponseType.java:47
void setIdTokenSignedResponseAlg(SignatureAlgorithm idTokenSignedResponseAlg)
Definition: RegisterRequest.java:556
String registrationEndpoint
Definition: BaseTest.java:81
Definition: RegisterClient.java:34
String getIdToken()
Definition: AuthorizationResponse.java:295
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
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
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

◆ requestClaimsIndividuallyRequestObjectSigningAlgRS256UserInfoSignedResponseAlgRS256()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectSigningAlgRS256UserInfoSignedResponseAlgRS256 ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri,
final String  keyId,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientJwksUri 
) throws Exception
inline
763  {
764  showTitle("requestClaimsIndividuallyRequestObjectSigningAlgRS256UserInfoSignedResponseAlgRS256");
765 
766  List<ResponseType> responseTypes = Arrays.asList(
769 
770  // 1. Register client
771  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
772  StringUtils.spaceSeparatedToList(redirectUris));
773  registerRequest.setResponseTypes(responseTypes);
774  registerRequest.setJwksUri(clientJwksUri);
775  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
779  registerRequest.setClaims(Arrays.asList(
780  JwtClaimName.NAME,
781  JwtClaimName.NICKNAME,
782  JwtClaimName.GIVEN_NAME,
783  JwtClaimName.FAMILY_NAME,
784  JwtClaimName.PICTURE,
785  JwtClaimName.ZONEINFO,
786  JwtClaimName.LOCALE,
787  JwtClaimName.ADDRESS_STREET_ADDRESS,
788  JwtClaimName.ADDRESS_LOCALITY,
789  JwtClaimName.ADDRESS_REGION,
790  JwtClaimName.ADDRESS_POSTAL_CODE,
791  JwtClaimName.ADDRESS_COUNTRY));
792 
793  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
794  registerClient.setRequest(registerRequest);
795  RegisterResponse registerResponse = registerClient.exec();
796 
797  showClient(registerClient);
798  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
799  assertNotNull(registerResponse.getClientId());
800  assertNotNull(registerResponse.getClientSecret());
801  assertNotNull(registerResponse.getRegistrationAccessToken());
802  assertNotNull(registerResponse.getClientIdIssuedAt());
803  assertNotNull(registerResponse.getClientSecretExpiresAt());
804 
805  String clientId = registerResponse.getClientId();
806 
807  // 2. Request authorization
808  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
809 
810  List<String> scopes = Arrays.asList("openid", "clientinfo");
811  String nonce = UUID.randomUUID().toString();
812  String state = UUID.randomUUID().toString();
813 
814  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
815  authorizationRequest.setState(state);
816 
817  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
818  authorizationRequest, SignatureAlgorithm.RS256, cryptoProvider);
819  jwtAuthorizationRequest.setKeyId(keyId);
820  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
821  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
822  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
823  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
824  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
825  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
826  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
827  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
828  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
829  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
830  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
831  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
832  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
833  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
834  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
835  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
836  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
837  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
838  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
839  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
840  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
841  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
842  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
843  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
844  authorizationRequest.setRequest(authJwt);
845 
847  authorizationEndpoint, authorizationRequest, userId, userSecret);
848 
849  assertNotNull(authorizationResponse.getLocation(), "The location is null");
850  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
851  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
852  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
853  assertNotNull(authorizationResponse.getState(), "The state is null");
854 
855  String idToken = authorizationResponse.getIdToken();
856  String accessToken = authorizationResponse.getAccessToken();
857 
858  // 3. Validate id_token
859  Jwt jwt = Jwt.parse(idToken);
860  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
861  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
862  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
863  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
864  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
865  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
866  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
867  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
868  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
869  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NAME));
870  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
871  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
872  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
873  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL));
874  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
875 
877  jwksUri,
878  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
879  RSASigner rsaSigner = new RSASigner(SignatureAlgorithm.RS256, publicKey);
880 
881  assertTrue(rsaSigner.validate(jwt));
882 
883  // 4. Request user info
884  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
885  userInfoClient.setJwksUri(jwksUri);
886  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
887 
888  showClient(userInfoClient);
889  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
890  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
891  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
892  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
893  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
894  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
895  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
896  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
897  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
898  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
899  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
900  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
901  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
902  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
903  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
904  }
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
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
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
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
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

◆ requestClaimsIndividuallyRequestObjectSigningAlgRS384UserInfoSignedResponseAlgRS384()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectSigningAlgRS384UserInfoSignedResponseAlgRS384 ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri,
final String  keyId,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientJwksUri 
) throws Exception
inline
912  {
913  showTitle("requestClaimsIndividuallyRequestObjectSigningAlgRS384UserInfoSignedResponseAlgRS384");
914 
915  List<ResponseType> responseTypes = Arrays.asList(
918 
919  // 1. Register client
920  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
921  StringUtils.spaceSeparatedToList(redirectUris));
922  registerRequest.setResponseTypes(responseTypes);
923  registerRequest.setJwksUri(clientJwksUri);
924  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
928  registerRequest.setClaims(Arrays.asList(
929  JwtClaimName.NAME,
930  JwtClaimName.NICKNAME,
931  JwtClaimName.GIVEN_NAME,
932  JwtClaimName.FAMILY_NAME,
933  JwtClaimName.PICTURE,
934  JwtClaimName.ZONEINFO,
935  JwtClaimName.LOCALE,
936  JwtClaimName.ADDRESS_STREET_ADDRESS,
937  JwtClaimName.ADDRESS_LOCALITY,
938  JwtClaimName.ADDRESS_REGION,
939  JwtClaimName.ADDRESS_POSTAL_CODE,
940  JwtClaimName.ADDRESS_COUNTRY));
941 
942  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
943  registerClient.setRequest(registerRequest);
944  RegisterResponse registerResponse = registerClient.exec();
945 
946  showClient(registerClient);
947  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
948  assertNotNull(registerResponse.getClientId());
949  assertNotNull(registerResponse.getClientSecret());
950  assertNotNull(registerResponse.getRegistrationAccessToken());
951  assertNotNull(registerResponse.getClientIdIssuedAt());
952  assertNotNull(registerResponse.getClientSecretExpiresAt());
953 
954  String clientId = registerResponse.getClientId();
955 
956  // 2. Request authorization
957  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
958 
959  List<String> scopes = Arrays.asList("openid", "clientinfo");
960  String nonce = UUID.randomUUID().toString();
961  String state = UUID.randomUUID().toString();
962 
963  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
964  authorizationRequest.setState(state);
965 
966  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
967  authorizationRequest, SignatureAlgorithm.RS384, cryptoProvider);
968  jwtAuthorizationRequest.setKeyId(keyId);
969  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
970  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
971  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
972  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
973  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
974  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
975  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
976  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
977  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
978  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
979  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
980  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
981  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
982  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
983  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
984  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
985  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
986  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
987  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
988  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
989  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
990  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
991  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
992  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
993  authorizationRequest.setRequest(authJwt);
994 
996  authorizationEndpoint, authorizationRequest, userId, userSecret);
997 
998  assertNotNull(authorizationResponse.getLocation(), "The location is null");
999  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1000  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1001  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1002  assertNotNull(authorizationResponse.getState(), "The state is null");
1003 
1004  String idToken = authorizationResponse.getIdToken();
1005  String accessToken = authorizationResponse.getAccessToken();
1006 
1007  // 3. Validate id_token
1008  Jwt jwt = Jwt.parse(idToken);
1009  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1010  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1011  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1012  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1013  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1014  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1015  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1016  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1017  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1018  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NAME));
1019  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
1020  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
1021  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
1022  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL));
1023  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
1024 
1026  jwksUri,
1027  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
1028  RSASigner rsaSigner = new RSASigner(SignatureAlgorithm.RS384, publicKey);
1029 
1030  assertTrue(rsaSigner.validate(jwt));
1031 
1032  // 4. Request user info
1033  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1034  userInfoClient.setJwksUri(jwksUri);
1035  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
1036 
1037  showClient(userInfoClient);
1038  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1039  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1040  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
1041  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
1042  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
1043  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
1044  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
1045  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
1046  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
1047  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
1048  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
1049  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
1050  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
1051  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
1052  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
1053  }
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
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
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
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
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

◆ requestClaimsIndividuallyRequestObjectSigningAlgRS512UserInfoSignedResponseAlgRS512()

void org.xdi.oxauth.ws.rs.IndividualClaimsRequestsTest.requestClaimsIndividuallyRequestObjectSigningAlgRS512UserInfoSignedResponseAlgRS512 ( final String  userId,
final String  userSecret,
final String  redirectUris,
final String  redirectUri,
final String  sectorIdentifierUri,
final String  keyId,
final String  dnName,
final String  keyStoreFile,
final String  keyStoreSecret,
final String  clientJwksUri 
) throws Exception
inline
1061  {
1062  showTitle("requestClaimsIndividuallyRequestObjectSigningAlgRS512UserInfoSignedResponseAlgRS512");
1063 
1064  List<ResponseType> responseTypes = Arrays.asList(
1067 
1068  // 1. Register client
1069  RegisterRequest registerRequest = new RegisterRequest(ApplicationType.WEB, "oxAuth test app",
1070  StringUtils.spaceSeparatedToList(redirectUris));
1071  registerRequest.setResponseTypes(responseTypes);
1072  registerRequest.setJwksUri(clientJwksUri);
1073  registerRequest.setSectorIdentifierUri(sectorIdentifierUri);
1077  registerRequest.setClaims(Arrays.asList(
1078  JwtClaimName.NAME,
1079  JwtClaimName.NICKNAME,
1080  JwtClaimName.GIVEN_NAME,
1081  JwtClaimName.FAMILY_NAME,
1082  JwtClaimName.PICTURE,
1083  JwtClaimName.ZONEINFO,
1084  JwtClaimName.LOCALE,
1085  JwtClaimName.ADDRESS_STREET_ADDRESS,
1086  JwtClaimName.ADDRESS_LOCALITY,
1087  JwtClaimName.ADDRESS_REGION,
1088  JwtClaimName.ADDRESS_POSTAL_CODE,
1089  JwtClaimName.ADDRESS_COUNTRY));
1090 
1091  RegisterClient registerClient = new RegisterClient(registrationEndpoint);
1092  registerClient.setRequest(registerRequest);
1093  RegisterResponse registerResponse = registerClient.exec();
1094 
1095  showClient(registerClient);
1096  assertEquals(registerResponse.getStatus(), 200, "Unexpected response code: " + registerResponse.getEntity());
1097  assertNotNull(registerResponse.getClientId());
1098  assertNotNull(registerResponse.getClientSecret());
1099  assertNotNull(registerResponse.getRegistrationAccessToken());
1100  assertNotNull(registerResponse.getClientIdIssuedAt());
1101  assertNotNull(registerResponse.getClientSecretExpiresAt());
1102 
1103  String clientId = registerResponse.getClientId();
1104 
1105  // 2. Request authorization
1106  OxAuthCryptoProvider cryptoProvider = new OxAuthCryptoProvider(keyStoreFile, keyStoreSecret, dnName);
1107 
1108  List<String> scopes = Arrays.asList("openid", "clientinfo");
1109  String nonce = UUID.randomUUID().toString();
1110  String state = UUID.randomUUID().toString();
1111 
1112  AuthorizationRequest authorizationRequest = new AuthorizationRequest(responseTypes, clientId, scopes, redirectUri, nonce);
1113  authorizationRequest.setState(state);
1114 
1115  JwtAuthorizationRequest jwtAuthorizationRequest = new JwtAuthorizationRequest(
1116  authorizationRequest, SignatureAlgorithm.RS512, cryptoProvider);
1117  jwtAuthorizationRequest.setKeyId(keyId);
1118  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NAME, ClaimValue.createNull()));
1119  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1120  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1121  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1122  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1123  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1124  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.PICTURE, ClaimValue.createEssential(false)));
1125  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ZONEINFO, ClaimValue.createNull()));
1126  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.LOCALE, ClaimValue.createNull()));
1127  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_STREET_ADDRESS, ClaimValue.createNull()));
1128  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_LOCALITY, ClaimValue.createNull()));
1129  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_REGION, ClaimValue.createNull()));
1130  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_POSTAL_CODE, ClaimValue.createNull()));
1131  jwtAuthorizationRequest.addUserInfoClaim(new Claim(JwtClaimName.ADDRESS_COUNTRY, ClaimValue.createNull()));
1132  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_TIME, ClaimValue.createNull()));
1133  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.AUTHENTICATION_CONTEXT_CLASS_REFERENCE, ClaimValue.createValueList(new String[]{"2"})));
1134  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NAME, ClaimValue.createEssential(true)));
1135  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.NICKNAME, ClaimValue.createEssential(false)));
1136  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.GIVEN_NAME, ClaimValue.createEssential(false)));
1137  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.FAMILY_NAME, ClaimValue.createEssential(false)));
1138  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL, ClaimValue.createNull()));
1139  jwtAuthorizationRequest.addIdTokenClaim(new Claim(JwtClaimName.EMAIL_VERIFIED, ClaimValue.createNull()));
1140  jwtAuthorizationRequest.getIdTokenMember().setMaxAge(86400);
1141  String authJwt = jwtAuthorizationRequest.getEncodedJwt();
1142  authorizationRequest.setRequest(authJwt);
1143 
1145  authorizationEndpoint, authorizationRequest, userId, userSecret);
1146 
1147  assertNotNull(authorizationResponse.getLocation(), "The location is null");
1148  assertNotNull(authorizationResponse.getAccessToken(), "The accessToken is null");
1149  assertNotNull(authorizationResponse.getTokenType(), "The tokenType is null");
1150  assertNotNull(authorizationResponse.getIdToken(), "The idToken is null");
1151  assertNotNull(authorizationResponse.getState(), "The state is null");
1152 
1153  String idToken = authorizationResponse.getIdToken();
1154  String accessToken = authorizationResponse.getAccessToken();
1155 
1156  // 3. Validate id_token
1157  Jwt jwt = Jwt.parse(idToken);
1158  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.TYPE));
1159  assertNotNull(jwt.getHeader().getClaimAsString(JwtHeaderName.ALGORITHM));
1160  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUER));
1161  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUDIENCE));
1162  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.EXPIRATION_TIME));
1163  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ISSUED_AT));
1164  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.SUBJECT_IDENTIFIER));
1165  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
1166  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.AUTHENTICATION_TIME));
1167  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NAME));
1168  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.NICKNAME));
1169  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.GIVEN_NAME));
1170  assertNotNull(jwt.getClaims().getClaimAsString(JwtClaimName.FAMILY_NAME));
1171  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL));
1172  assertNull(jwt.getClaims().getClaimAsString(JwtClaimName.EMAIL_VERIFIED));
1173 
1175  jwksUri,
1176  jwt.getHeader().getClaimAsString(JwtHeaderName.KEY_ID));
1177  RSASigner rsaSigner = new RSASigner(SignatureAlgorithm.RS512, publicKey);
1178 
1179  assertTrue(rsaSigner.validate(jwt));
1180 
1181  // 4. Request user info
1182  UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint);
1183  userInfoClient.setJwksUri(jwksUri);
1184  UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
1185 
1186  showClient(userInfoClient);
1187  assertEquals(userInfoResponse.getStatus(), 200, "Unexpected response code: " + userInfoResponse.getStatus());
1188  assertNotNull(userInfoResponse.getClaim(JwtClaimName.SUBJECT_IDENTIFIER));
1189  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NAME));
1190  assertNotNull(userInfoResponse.getClaim(JwtClaimName.NICKNAME));
1191  assertNotNull(userInfoResponse.getClaim(JwtClaimName.GIVEN_NAME));
1192  assertNotNull(userInfoResponse.getClaim(JwtClaimName.FAMILY_NAME));
1193  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL));
1194  assertNull(userInfoResponse.getClaim(JwtClaimName.EMAIL_VERIFIED));
1195  assertNotNull(userInfoResponse.getClaim(JwtClaimName.PICTURE));
1196  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ZONEINFO));
1197  assertNotNull(userInfoResponse.getClaim(JwtClaimName.LOCALE));
1198  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_STREET_ADDRESS));
1199  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_LOCALITY));
1200  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_REGION));
1201  assertNotNull(userInfoResponse.getClaim(JwtClaimName.ADDRESS_COUNTRY));
1202  }
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
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
void setJwksUri(String jwksUri)
Definition: RegisterRequest.java:454
Date getClientSecretExpiresAt()
Definition: RegisterResponse.java:205
RegisterResponse exec()
Definition: RegisterClient.java:76
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
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

◆ 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

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