Formatting as well as adding a missing defer

Issue gh-15699
This commit is contained in:
Josh Cummings 2024-10-07 16:40:22 -06:00
parent 2ca2e56383
commit b26f2af5d5
3 changed files with 12 additions and 7 deletions

View File

@ -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 {
http
.authorizeExchange((authorize) -> authorize
.anyExchange()
.authenticated())
.authenticated()
)
.oneTimeTokenLogin((ott) -> ott
.generateTokenUrl("/generateurl")
.generatedOneTimeTokenHandler(new TestServerGeneratedOneTimeTokenHandler("/redirected"))
@ -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 {
http
.authorizeExchange((authorize) -> authorize
.anyExchange()
.authenticated())
.authenticated()
)
.oneTimeTokenLogin(Customizer.withDefaults());
// @formatter:on
return http.build();

View File

@ -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));
}

View File

@ -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));