@@ -13,7 +13,7 @@ public class AuthenticationRequestTest {
1313 Map <String , Object > claims = new HashMap <String , Object >();
1414
1515 /**
16- * Setuo mandatory claims.
16+ * Setup mandatory claims.
1717 */
1818 @ Before
1919 public void setup () {
@@ -51,7 +51,7 @@ public void testSuccessOfflineAccess() throws InvalidClaimException {
5151 Assert .assertEquals ("consent" , ((List <String >) req .getClaims ().get ("prompt" )).get (0 ));
5252 Assert .assertEquals ("openid offline_access" , req .getClaims ().get ("scope" ));
5353 }
54-
54+
5555 @ Test
5656 public void testSuccessResponseTypeIdToken () throws InvalidClaimException {
5757 claims .put ("response_type" , "id_token token" );
@@ -61,7 +61,7 @@ public void testSuccessResponseTypeIdToken() throws InvalidClaimException {
6161 Assert .assertEquals ("DFHGFG" , (String ) req .getClaims ().get ("nonce" ));
6262 Assert .assertEquals ("id_token token" , req .getClaims ().get ("response_type" ));
6363 }
64-
64+
6565 @ Test (expected = InvalidClaimException .class )
6666 public void testFailResponseTypeIdTokenMissingNonce () throws InvalidClaimException {
6767 claims .put ("response_type" , "id_token token" );
@@ -108,4 +108,39 @@ public void testFailUnAllowedDisplayValue() throws InvalidClaimException {
108108 req .verify ();
109109 }
110110
111+ @ Test
112+ public void testSuccessIdTokenHint () throws InvalidClaimException {
113+ // TODO: There is no capability in is token to verify signature nor timestamps or sorts yet.
114+ // Once there is, this test will fail and needs to be updated to produce id token that passes
115+ // validation.
116+ String idToken = "eyJraWQiOiIxZTlnZGs3IiwiYWxnIjoiUlMyNTYifQ.ewogImlz"
117+ + "cyI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4"
118+ + "Mjg5NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAi"
119+ + "bi0wUzZfV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEz"
120+ + "MTEyODA5NzAsCiAibmFtZSI6ICJKYW5lIERvZSIsCiAiZ2l2ZW5fbmFtZSI6"
121+ + "ICJKYW5lIiwKICJmYW1pbHlfbmFtZSI6ICJEb2UiLAogImdlbmRlciI6ICJm"
122+ + "ZW1hbGUiLAogImJpcnRoZGF0ZSI6ICIwMDAwLTEwLTMxIiwKICJlbWFpbCI6"
123+ + "ICJqYW5lZG9lQGV4YW1wbGUuY29tIiwKICJwaWN0dXJlIjogImh0dHA6Ly9l"
124+ + "eGFtcGxlLmNvbS9qYW5lZG9lL21lLmpwZyIKfQ.rHQjEmBqn9Jre0OLykYNn"
125+ + "spA10Qql2rvx4FsD00jwlB0Sym4NzpgvPKsDjn_wMkHxcp6CilPcoKrWHcip"
126+ + "R2iAjzLvDNAReF97zoJqq880ZD1bwY82JDauCXELVR9O6_B0w3K-E7yM2mac"
127+ + "AAgNCUwtik6SjoSUZRcf-O5lygIyLENx882p6MtmwaL1hd6qn5RZOQ0TLrOY"
128+ + "u0532g9Exxcm-ChymrB4xLykpDj3lUivJt63eEGGN6DH5K6o33TcxkIjNrCD"
129+ + "4XB1CKKumZvCedgHHF3IAK4dVEDSUoGlH9z4pP_eWYNXvqQOjGs-rDaQzUHl"
130+ + "6cQQWNiDpWOl_lxXjQEvQ" ;
131+ claims .put ("id_token_hint" , idToken );
132+ AuthenticationRequest req = new AuthenticationRequest (claims );
133+ req .verify ();
134+ Assert .assertEquals (idToken , req .getClaims ().get ("id_token_hint" ));
135+ }
136+
137+ @ Test (expected = Exception .class )
138+ public void testFailIdTokenHintInvalid () throws InvalidClaimException {
139+ String idToken = "notparsableasidtoken" ;
140+ claims .put ("id_token_hint" , idToken );
141+ AuthenticationRequest req = new AuthenticationRequest (claims );
142+ req .verify ();
143+ Assert .assertEquals (idToken , req .getClaims ().get ("id_token_hint" ));
144+ }
145+
111146}
0 commit comments