@@ -361,6 +361,34 @@ public void testValidate_shouldFailOnIssuerWithFragment()
361361 idToken .validate (tokenRequest , clock );
362362 }
363363
364+ @ Test (expected = AuthorizationException .class )
365+ public void testValidate_shouldFailOnIssuerMissingScheme ()
366+ throws AuthorizationException , JSONException , MissingArgumentException {
367+ Long nowInSeconds = SystemClock .INSTANCE .getCurrentTimeMillis () / 1000 ;
368+ Long tenMinutesInSeconds = (long ) (10 * 60 );
369+ IdToken idToken = new IdToken (
370+ "some.issuer" ,
371+ TEST_SUBJECT ,
372+ Collections .singletonList (TEST_CLIENT_ID ),
373+ nowInSeconds + tenMinutesInSeconds ,
374+ nowInSeconds
375+ );
376+
377+ String serviceDocJsonWithIssuerMissingHost = getDiscoveryDocJsonWithIssuer ("some.issuer" );
378+ AuthorizationServiceDiscovery discoveryDoc = new AuthorizationServiceDiscovery (
379+ new JSONObject (serviceDocJsonWithIssuerMissingHost ));
380+ AuthorizationServiceConfiguration serviceConfiguration =
381+ new AuthorizationServiceConfiguration (discoveryDoc );
382+ TokenRequest tokenRequest = new TokenRequest .Builder (serviceConfiguration , TEST_CLIENT_ID )
383+ .setAuthorizationCode (TEST_AUTH_CODE )
384+ .setCodeVerifier (TEST_CODE_VERIFIER )
385+ .setGrantType (GrantTypeValues .AUTHORIZATION_CODE )
386+ .setRedirectUri (TEST_APP_REDIRECT_URI )
387+ .build ();
388+ Clock clock = SystemClock .INSTANCE ;
389+ idToken .validate (tokenRequest , clock );
390+ }
391+
364392 @ Test
365393 public void testValidate_audienceMatch () throws AuthorizationException {
366394 Long nowInSeconds = SystemClock .INSTANCE .getCurrentTimeMillis () / 1000 ;
0 commit comments