Skip to content

Commit 2ec0a41

Browse files
aarmamSanderKondratjevNortal
authored andcommitted
NFC-47 Authentication flow fixes and updates
Signed-off-by: Sander Kondratjev [email protected]
1 parent 015b69d commit 2ec0a41

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

example/src/main/java/eu/webeid/example/security/WebEidMobileAuthInitFilter.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,14 @@
4141
import org.springframework.security.web.util.matcher.RequestMatcher;
4242
import org.springframework.web.filter.OncePerRequestFilter;
4343
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
44+
import org.springframework.web.util.UriComponentsBuilder;
4445

4546
import java.io.IOException;
4647
import java.nio.charset.StandardCharsets;
4748
import java.util.Base64;
4849

4950
public final class WebEidMobileAuthInitFilter extends OncePerRequestFilter {
51+
private static final String WEB_EID_MOBILE_AUTH_PATH = "auth";
5052
private static final ObjectWriter OBJECT_WRITER = new ObjectMapper().writer();
5153
private final RequestMatcher requestMatcher;
5254
private final ChallengeNonceGenerator nonceGenerator;
@@ -79,10 +81,20 @@ protected void doFilterInternal(@NonNull HttpServletRequest request,
7981
webEidMobileProperties.requestSigningCert() ? Boolean.TRUE : null)
8082
);
8183
String encoded = Base64.getEncoder().encodeToString(payloadJson.getBytes(StandardCharsets.UTF_8));
82-
String eidAuthUri = "web-eid-mobile://auth#" + encoded;
84+
String authUri = getAuthUri(encoded);
8385

8486
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
85-
OBJECT_WRITER.writeValue(response.getWriter(), new AuthUri(eidAuthUri));
87+
OBJECT_WRITER.writeValue(response.getWriter(), new AuthUri(authUri));
88+
}
89+
90+
private String getAuthUri(String encodedPayload) {
91+
UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(webEidMobileProperties.baseRequestUri());
92+
if (webEidMobileProperties.baseRequestUri().startsWith("http")) {
93+
builder.pathSegment(WEB_EID_MOBILE_AUTH_PATH);
94+
} else {
95+
builder.host(WEB_EID_MOBILE_AUTH_PATH);
96+
}
97+
return builder.fragment(encodedPayload).toUriString();
8698
}
8799

88100
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)

0 commit comments

Comments
 (0)