There is an interface Saml2AuthenticationRequestResolver with resolve method and return type of the method is . Now AbstractSaml2AuthenticationRequest is supposed to be inherited to override the getRelayState() method, but the constructor of AbstractSaml2AuthenticationRequest is default thus has scope only till package. So due to this it is not inherited hence not able to set relayState.

Also in OpenSamlAuthenticationRequestResolver class relayState is set as String relayState = UUID.randomUUID().toString(); which is of no use.

Expectation

Way to set relayState.

Comment From: jzheaux

@Shubham2507, thanks for the suggestion. This appears to be a duplicate of #11065.

Comment From: Shubham2507

Hi @jzheaux, I am working on version saml2-service-provider 5.7.3 and the solution mentioned in #11065 doesnot seems to work. As,

  • There is no setRelayStateResolver(this::resolveCustomRelayState) in OpenSaml4AuthenticationRequestResolver.
  • resolve() method of Interface Saml2AuthenticationRequestResolver has return type T extends AbstractSaml2AuthenticationRequest and AbstractSaml2AuthenticationRequest is not eligible for inheritance outside package has default scope on constructor.

Please suggest me something feasible in above mentioned version