Hi,
when setting up our application with OidcConfiguration etc. (Pac4j 6.2.2) and want to perform backchannel logout via the IdP, we get the following exception upon receiving the logout token:
ERROR o.p.o.c.e.OidcCredentialsExtractor [ ] Cannot validate JWT logout token | (OidcCredentialsExtractor.java:101)
com.nimbusds.jose.proc.BadJOSEException: JOSE header typ (type) logout+jwt not allowed
at com.nimbusds.jose.proc.DefaultJOSEObjectTypeVerifier.verify(DefaultJOSEObjectTypeVerifier.java:148)
at com.nimbusds.jwt.proc.DefaultJWTProcessor.process(DefaultJWTProcessor.java:378)
at com.nimbusds.openid.connect.sdk.validators.IDTokenValidator.validate(IDTokenValidator.java:321)
at com.nimbusds.openid.connect.sdk.validators.IDTokenValidator.validate(IDTokenValidator.java:254)
at org.pac4j.oidc.profile.creator.TokenValidator.validate(TokenValidator.java:144)
at org.pac4j.oidc.credentials.extractor.OidcCredentialsExtractor.extract(OidcCredentialsExtractor.java:78)
at org.pac4j.core.client.BaseClient.getCredentials(BaseClient.java:80)
at org.pac4j.core.engine.DefaultCallbackLogic.perform(DefaultCallbackLogic.java:81)
at org.pac4j.jee.filter.CallbackFilter.internalFilter(CallbackFilter.java:63)
logout+jwt is defined in com.nimbusds.openid.connect.sdk.validators.LogoutTokenValidator
Thus, this validator should be included, and we cannot rely on IDTokenValidators for the logout token case.
If the maintainers agree regarding this assessment I can create a PR and suggest a fix.
Thanks,
Anna