Browse Source

Polish

Formatting as well as adding a missing defer

Issue gh-15699
pull/15886/head
Josh Cummings 1 year ago
parent
commit
b26f2af5d5
  1. 12
      config/src/test/java/org/springframework/security/config/web/server/OneTimeTokenLoginSpecTests.java
  2. 2
      core/src/main/java/org/springframework/security/authentication/ott/reactive/OneTimeTokenReactiveAuthenticationManager.java
  3. 5
      web/src/main/java/org/springframework/security/web/server/authentication/ott/GenerateOneTimeTokenWebFilter.java

12
config/src/test/java/org/springframework/security/config/web/server/OneTimeTokenLoginSpecTests.java

@ -292,7 +292,8 @@ public class OneTimeTokenLoginSpecTests { @@ -292,7 +292,8 @@ public class OneTimeTokenLoginSpecTests {
http
.authorizeExchange((authorize) -> authorize
.anyExchange()
.authenticated())
.authenticated()
)
.oneTimeTokenLogin((ott) -> ott
.generatedOneTimeTokenHandler(new TestServerGeneratedOneTimeTokenHandler())
);
@ -314,7 +315,8 @@ public class OneTimeTokenLoginSpecTests { @@ -314,7 +315,8 @@ public class OneTimeTokenLoginSpecTests {
http
.authorizeExchange((authorize) -> authorize
.anyExchange()
.authenticated())
.authenticated()
)
.oneTimeTokenLogin((ott) -> ott
.generateTokenUrl("/generateurl")
.generatedOneTimeTokenHandler(new TestServerGeneratedOneTimeTokenHandler("/redirected"))
@ -339,7 +341,8 @@ public class OneTimeTokenLoginSpecTests { @@ -339,7 +341,8 @@ public class OneTimeTokenLoginSpecTests {
http
.authorizeExchange((authorize) -> authorize
.anyExchange()
.authenticated())
.authenticated()
)
.formLogin(Customizer.withDefaults())
.oneTimeTokenLogin((ott) -> ott
.generatedOneTimeTokenHandler(new TestServerGeneratedOneTimeTokenHandler())
@ -362,7 +365,8 @@ public class OneTimeTokenLoginSpecTests { @@ -362,7 +365,8 @@ public class OneTimeTokenLoginSpecTests {
http
.authorizeExchange((authorize) -> authorize
.anyExchange()
.authenticated())
.authenticated()
)
.oneTimeTokenLogin(Customizer.withDefaults());
// @formatter:on
return http.build();

2
core/src/main/java/org/springframework/security/authentication/ott/reactive/OneTimeTokenReactiveAuthenticationManager.java

@ -54,7 +54,7 @@ public final class OneTimeTokenReactiveAuthenticationManager implements Reactive @@ -54,7 +54,7 @@ public final class OneTimeTokenReactiveAuthenticationManager implements Reactive
return Mono.empty();
}
return this.oneTimeTokenService.consume(otpAuthenticationToken)
.switchIfEmpty(Mono.error(new InvalidOneTimeTokenException("Invalid token")))
.switchIfEmpty(Mono.defer(() -> Mono.error(new InvalidOneTimeTokenException("Invalid token"))))
.flatMap((consumed) -> this.userDetailsService.findByUsername(consumed.getUsername()))
.map(onSuccess(otpAuthenticationToken));
}

5
web/src/main/java/org/springframework/security/web/server/authentication/ott/GenerateOneTimeTokenWebFilter.java

@ -58,8 +58,9 @@ public final class GenerateOneTimeTokenWebFilter implements WebFilter { @@ -58,8 +58,9 @@ public final class GenerateOneTimeTokenWebFilter implements WebFilter {
// @formatter:off
return this.matcher.matches(exchange)
.filter(ServerWebExchangeMatcher.MatchResult::isMatch)
.flatMap((mathResult) -> exchange.getFormData())
.flatMap((data) -> Mono.justOrEmpty(data.getFirst(USERNAME)))
.switchIfEmpty(chain.filter(exchange).then(Mono.empty()))
.then(exchange.getFormData())
.mapNotNull((data) -> data.getFirst(USERNAME))
.switchIfEmpty(chain.filter(exchange).then(Mono.empty()))
.flatMap((username) -> this.oneTimeTokenService.generate(new GenerateOneTimeTokenRequest(username)))
.flatMap((token) -> this.generatedOneTimeTokenHandler.handle(exchange, token));

Loading…
Cancel
Save