Skip to content

Commit 374af21

Browse files
aarmamSanderKondratjevNortal
authored andcommitted
Remove redundant AuthTokenDTO and use WebEidAuthToken directly
1 parent 0396a77 commit 374af21

File tree

14 files changed

+46
-101
lines changed

14 files changed

+46
-101
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,11 +239,11 @@ Authentication consists of calling the `validate()` method of the authentication
239239

240240
When using [Spring Security](https://spring.io/guides/topicals/spring-security-architecture) with standard cookie-based authentication,
241241

242-
- implement a custom authentication provider that uses the authentication token validator for authentication as shown [here](example/blob/main/src/main/java/eu/webeid/example/security/AuthTokenDTOAuthenticationProvider.java),
242+
- implement a custom authentication provider that uses the authentication token validator for authentication as shown [here](example/blob/main/src/main/java/eu/webeid/example/security/WebEidAuthenticationProvider.java),
243243
- implement an AJAX authentication processing filter that extracts the authentication token and passes it to the authentication manager as shown [here](example/blob/main/src/main/java/eu/webeid/example/security/WebEidAjaxLoginProcessingFilter.java),
244244
- configure the authentication provider and authentication processing filter in the application configuration as shown [here](example/blob/main/src/main/java/eu/webeid/example/config/ApplicationConfiguration.java).
245245

246-
The gist of the validation is [in the `authenticate()` method](example/blob/main/src/main/java/eu/webeid/example/security/AuthTokenDTOAuthenticationProvider.java#L74-L76) of the authentication provider:
246+
The gist of the validation is [in the `authenticate()` method](example/blob/main/src/main/java/eu/webeid/example/security/WebEidAuthenticationProvider.java#L74-L76) of the authentication provider:
247247

248248
```java
249249
try {

example/src/main/java/eu/webeid/example/config/ApplicationConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222

2323
package eu.webeid.example.config;
2424

25-
import eu.webeid.example.security.AuthTokenDTOAuthenticationProvider;
2625
import eu.webeid.example.security.WebEidAjaxLoginProcessingFilter;
26+
import eu.webeid.example.security.WebEidAuthenticationProvider;
2727
import eu.webeid.example.security.WebEidChallengeNonceFilter;
2828
import eu.webeid.example.security.WebEidMobileAuthInitFilter;
2929
import eu.webeid.example.security.ui.WebEidLoginPageGeneratingFilter;
@@ -47,7 +47,7 @@ public class ApplicationConfiguration {
4747
@Bean
4848
public SecurityFilterChain filterChain(
4949
HttpSecurity http,
50-
AuthTokenDTOAuthenticationProvider authTokenDTOAuthenticationProvider,
50+
WebEidAuthenticationProvider webEidAuthenticationProvider,
5151
AuthenticationConfiguration authConfig,
5252
ChallengeNonceGenerator challengeNonceGenerator
5353
) throws Exception {
@@ -57,7 +57,7 @@ public SecurityFilterChain filterChain(
5757
.requestMatchers("/").permitAll()
5858
.anyRequest().authenticated()
5959
)
60-
.authenticationProvider(authTokenDTOAuthenticationProvider)
60+
.authenticationProvider(webEidAuthenticationProvider)
6161
.addFilterBefore(new WebEidMobileAuthInitFilter("/auth/mobile/init", "/auth/mobile/login", challengeNonceGenerator), UsernamePasswordAuthenticationFilter.class)
6262
.addFilterBefore(new WebEidChallengeNonceFilter("/auth/challenge", challengeNonceGenerator), UsernamePasswordAuthenticationFilter.class)
6363
.addFilterBefore(new WebEidLoginPageGeneratingFilter("/auth/mobile/login", "/auth/login"), UsernamePasswordAuthenticationFilter.class)

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import com.fasterxml.jackson.databind.ObjectReader;
2727
import eu.webeid.example.security.ajax.AjaxAuthenticationFailureHandler;
2828
import eu.webeid.example.security.ajax.AjaxAuthenticationSuccessHandler;
29-
import eu.webeid.example.security.dto.AuthTokenDTO;
29+
import eu.webeid.security.authtoken.WebEidAuthToken;
3030
import jakarta.servlet.FilterChain;
3131
import jakarta.servlet.ServletException;
3232
import jakarta.servlet.http.HttpServletRequest;
@@ -52,7 +52,7 @@
5252

5353
public class WebEidAjaxLoginProcessingFilter extends AbstractAuthenticationProcessingFilter {
5454
private static final Logger LOG = LoggerFactory.getLogger(WebEidAjaxLoginProcessingFilter.class);
55-
private final ObjectReader OBJECT_READER = new ObjectMapper().readerFor(AuthTokenDTO.class);
55+
private final ObjectReader OBJECT_READER = new ObjectMapper().readerFor(WebEidAuthToken.class);
5656
private final SecurityContextRepository securityContextRepository;
5757

5858
public WebEidAjaxLoginProcessingFilter(
@@ -77,9 +77,9 @@ public Authentication attemptAuthentication(HttpServletRequest request, HttpServ
7777
}
7878

7979
LOG.info("attemptAuthentication(): Reading request body");
80-
final AuthTokenDTO authTokenDTO = OBJECT_READER.readValue(request.getReader());
80+
final WebEidAuthToken webEidAuthToken = OBJECT_READER.readValue(request.getReader());
8181
LOG.info("attemptAuthentication(): Creating token");
82-
final PreAuthenticatedAuthenticationToken token = new PreAuthenticatedAuthenticationToken(null, authTokenDTO);
82+
final PreAuthenticatedAuthenticationToken token = new PreAuthenticatedAuthenticationToken(null, webEidAuthToken);
8383
LOG.info("attemptAuthentication(): Calling authentication manager");
8484
return getAuthenticationManager().authenticate(token);
8585
}

example/src/main/java/eu/webeid/example/security/AuthTokenDTOAuthenticationProvider.java renamed to example/src/main/java/eu/webeid/example/security/WebEidAuthenticationProvider.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222

2323
package eu.webeid.example.security;
2424

25-
import eu.webeid.example.security.dto.AuthTokenDTO;
2625
import eu.webeid.security.authtoken.WebEidAuthToken;
2726
import eu.webeid.security.challenge.ChallengeNonceStore;
2827
import eu.webeid.security.exceptions.AuthTokenException;
@@ -47,16 +46,16 @@
4746
* Parses JWT from token string inside AuthTokenDTO and attempts authentication.
4847
*/
4948
@Component
50-
public class AuthTokenDTOAuthenticationProvider implements AuthenticationProvider {
49+
public class WebEidAuthenticationProvider implements AuthenticationProvider {
5150
public static final String ROLE_USER = "ROLE_USER";
5251
private static final GrantedAuthority USER_ROLE = new SimpleGrantedAuthority(ROLE_USER);
5352

54-
private static final Logger LOG = LoggerFactory.getLogger(AuthTokenDTOAuthenticationProvider.class);
53+
private static final Logger LOG = LoggerFactory.getLogger(WebEidAuthenticationProvider.class);
5554

5655
private final AuthTokenValidator tokenValidator;
5756
private final ChallengeNonceStore challengeNonceStore;
5857

59-
public AuthTokenDTOAuthenticationProvider(AuthTokenValidator tokenValidator, ChallengeNonceStore challengeNonceStore) {
58+
public WebEidAuthenticationProvider(AuthTokenValidator tokenValidator, ChallengeNonceStore challengeNonceStore) {
6059
this.tokenValidator = tokenValidator;
6160
this.challengeNonceStore = challengeNonceStore;
6261
}
@@ -66,7 +65,7 @@ public Authentication authenticate(Authentication auth) throws AuthenticationExc
6665
LOG.info("authenticate(): {}", auth);
6766

6867
final PreAuthenticatedAuthenticationToken authentication = (PreAuthenticatedAuthenticationToken) auth;
69-
final WebEidAuthToken authToken = ((AuthTokenDTO) authentication.getCredentials()).getToken();
68+
final WebEidAuthToken authToken = (WebEidAuthToken) authentication.getCredentials();
7069

7170
final List<GrantedAuthority> authorities = Collections.singletonList(USER_ROLE);
7271

example/src/main/java/eu/webeid/example/security/dto/AuthTokenDTO.java

Lines changed: 0 additions & 39 deletions
This file was deleted.

example/src/main/java/eu/webeid/example/security/ui/WebEidLoginPageGeneratingFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public final class WebEidLoginPageGeneratingFilter extends OncePerRequestFilter
7979
"Content-Type": "application/json",
8080
"%s": "%s"
8181
},
82-
body: JSON.stringify({ "auth-token": authToken }),
82+
body: JSON.stringify(authToken),
8383
credentials: "include"
8484
})
8585
.then(r => {

example/src/main/java/eu/webeid/example/service/SigningService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
import java.security.cert.X509Certificate;
5757
import java.util.Objects;
5858

59-
import static eu.webeid.example.security.AuthTokenDTOAuthenticationProvider.ROLE_USER;
59+
import static eu.webeid.example.security.WebEidAuthenticationProvider.ROLE_USER;
6060

6161
@Service
6262
@Secured(ROLE_USER)

example/src/main/java/eu/webeid/example/web/WelcomeController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import java.security.Principal;
3333
import java.util.Objects;
3434

35-
import static eu.webeid.example.security.AuthTokenDTOAuthenticationProvider.ROLE_USER;
35+
import static eu.webeid.example.security.WebEidAuthenticationProvider.ROLE_USER;
3636

3737
@Controller
3838
@Secured(ROLE_USER)

example/src/main/java/eu/webeid/example/web/rest/SigningController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
import java.security.NoSuchAlgorithmException;
4444
import java.security.cert.CertificateException;
4545

46-
import static eu.webeid.example.security.AuthTokenDTOAuthenticationProvider.ROLE_USER;
46+
import static eu.webeid.example.security.WebEidAuthenticationProvider.ROLE_USER;
4747

4848
@RestController
4949
@RequestMapping("sign")

example/src/main/resources/templates/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ <h4 class="accordion-header" id="headingDocumentationMobile">
450450
"Content-Type": "application/json",
451451
[csrfHeaderName]: csrfToken
452452
},
453-
body: `{"auth-token": ${JSON.stringify(authToken)}}`
453+
body: JSON.stringify(authToken)
454454
});
455455
await checkHttpError(authTokenResponse);
456456
const authTokenResult = await authTokenResponse.json();

0 commit comments

Comments
 (0)