2525import com .fasterxml .jackson .annotation .JsonProperty ;
2626import com .fasterxml .jackson .databind .ObjectMapper ;
2727import com .fasterxml .jackson .databind .ObjectWriter ;
28+ import eu .webeid .example .config .WebEidMobileProperties ;
2829import eu .webeid .security .challenge .ChallengeNonceGenerator ;
2930import jakarta .servlet .FilterChain ;
3031import jakarta .servlet .ServletException ;
@@ -47,11 +48,13 @@ public final class WebEidMobileAuthInitFilter extends OncePerRequestFilter {
4748 private final RequestMatcher requestMatcher ;
4849 private final ChallengeNonceGenerator nonceGenerator ;
4950 private final String mobileLoginPath ;
51+ private final WebEidMobileProperties webEidMobileProperties ;
5052
51- public WebEidMobileAuthInitFilter (String path , String mobileLoginPath , ChallengeNonceGenerator nonceGenerator ) {
53+ public WebEidMobileAuthInitFilter (String path , String mobileLoginPath , ChallengeNonceGenerator nonceGenerator , WebEidMobileProperties webEidMobileProperties ) {
5254 this .requestMatcher = PathPatternRequestMatcher .withDefaults ().matcher (HttpMethod .POST , path );
5355 this .nonceGenerator = nonceGenerator ;
5456 this .mobileLoginPath = mobileLoginPath ;
57+ this .webEidMobileProperties = webEidMobileProperties ;
5558 }
5659
5760 @ Override
@@ -68,8 +71,10 @@ protected void doFilterInternal(@NonNull HttpServletRequest request,
6871 String loginUri = ServletUriComponentsBuilder .fromCurrentContextPath ()
6972 .path (mobileLoginPath ).build ().toUriString ();
7073
74+ boolean getSigningCertificate = webEidMobileProperties .requestSigningCert ();
75+
7176 String payloadJson = OBJECT_WRITER .writeValueAsString (
72- new AuthPayload (challenge .getBase64EncodedNonce (), loginUri )
77+ new AuthPayload (challenge .getBase64EncodedNonce (), loginUri , getSigningCertificate )
7378 );
7479 String encoded = Base64 .getEncoder ().encodeToString (payloadJson .getBytes (StandardCharsets .UTF_8 ));
7580 String eidAuthUri = "web-eid-mobile://auth#" + encoded ;
@@ -78,7 +83,10 @@ protected void doFilterInternal(@NonNull HttpServletRequest request,
7883 OBJECT_WRITER .writeValue (response .getWriter (), new AuthUri (eidAuthUri ));
7984 }
8085
81- record AuthPayload (String challenge , @ JsonProperty ("login_uri" ) String loginUri ) {
86+ record AuthPayload (
87+ String challenge ,
88+ @ JsonProperty ("login_uri" ) String loginUri ,
89+ @ JsonProperty ("get_signing_certificate" ) boolean getSigningCertificate ) {
8290 }
8391
8492 record AuthUri (@ JsonProperty ("auth_uri" ) String authUri ) {
0 commit comments