Skip to content

Commit 3712b83

Browse files
committed
Update Samples to Latest
1 parent 1faafd4 commit 3712b83

File tree

8 files changed

+40
-16
lines changed

8 files changed

+40
-16
lines changed

servlet/spring-boot/java/authentication/mfa/formLogin+ott/src/main/java/org/example/magiclink/CustomPagesSecurityConfig.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package org.example.magiclink;
22

3+
import jakarta.servlet.http.HttpServletRequest;
4+
35
import org.springframework.context.annotation.Bean;
46
import org.springframework.context.annotation.Configuration;
57
import org.springframework.context.annotation.Profile;
68
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
9+
import org.springframework.security.core.Authentication;
710
import org.springframework.security.web.SecurityFilterChain;
811
import org.springframework.stereotype.Controller;
912
import org.springframework.web.bind.annotation.GetMapping;
@@ -20,8 +23,11 @@ public String login() {
2023
return "login";
2124
}
2225

23-
@GetMapping("/login/ott")
24-
public String ott() {
26+
@GetMapping("/commence/ott")
27+
public String ott(HttpServletRequest request, Authentication authentication) {
28+
if (authentication != null) {
29+
request.setAttribute("username", authentication.getName());
30+
}
2531
return "ott";
2632
}
2733
}
@@ -32,7 +38,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
3238
http
3339
.authorizeHttpRequests((authorize) -> authorize.anyRequest().authenticated())
3440
.formLogin((form) -> form.loginPage("/login/form").permitAll())
35-
.oneTimeTokenLogin((ott) -> ott.loginPage("/login/ott").permitAll());
41+
.oneTimeTokenLogin((ott) -> ott.loginPage("/commence/ott").permitAll());
3642
// @formatter:on
3743
return http.build();
3844
}

servlet/spring-boot/java/authentication/mfa/formLogin+ott/src/main/java/org/example/magiclink/DefaultSecurityConfig.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.springframework.context.annotation.Bean;
2020
import org.springframework.context.annotation.Configuration;
2121
import org.springframework.context.annotation.Profile;
22+
import org.springframework.security.authorization.AuthorizationManagerFactory;
2223
import org.springframework.security.config.Customizer;
2324
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
2425
import org.springframework.security.web.SecurityFilterChain;
@@ -39,7 +40,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
3940
}
4041

4142
@Bean
42-
FactorAuthorizationManagerFactory authz() {
43+
AuthorizationManagerFactory<?> authz() {
4344
return new FactorAuthorizationManagerFactory("FACTOR_PASSWORD", "FACTOR_OTT");
4445
}
4546

servlet/spring-boot/java/authentication/mfa/formLogin+ott/src/main/java/org/example/magiclink/ElevatedSecurityPageSecurityConfig.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package org.example.magiclink;
22

3+
import jakarta.servlet.http.HttpServletRequest;
4+
35
import org.springframework.context.annotation.Bean;
46
import org.springframework.context.annotation.Configuration;
57
import org.springframework.context.annotation.Profile;
68
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
9+
import org.springframework.security.core.Authentication;
710
import org.springframework.security.web.SecurityFilterChain;
811
import org.springframework.stereotype.Controller;
912
import org.springframework.web.bind.annotation.GetMapping;
@@ -20,8 +23,11 @@ public String login() {
2023
return "login";
2124
}
2225

23-
@GetMapping("/login/ott")
24-
public String ott() {
26+
@GetMapping("/commence/ott")
27+
public String ott(HttpServletRequest request, Authentication authentication) {
28+
if (authentication != null) {
29+
request.setAttribute("username", authentication.getName());
30+
}
2531
return "ott";
2632
}
2733
}
@@ -32,7 +38,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
3238
http
3339
.authorizeHttpRequests((authorize) -> authorize.anyRequest().authenticated())
3440
.formLogin((form) -> form.loginPage("/login/form").permitAll())
35-
.oneTimeTokenLogin((ott) -> ott.loginPage("/login/ott").permitAll());
41+
.oneTimeTokenLogin((ott) -> ott.loginPage("/commence/ott").permitAll());
3642

3743
// @formatter:on
3844
return http.build();

servlet/spring-boot/java/authentication/mfa/formLogin+ott/src/main/java/org/example/magiclink/MagicLinkOneTimeTokenGenerationSuccessHandler.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,12 @@ public class MagicLinkOneTimeTokenGenerationSuccessHandler implements OneTimeTok
3535
@Override
3636
public void handle(HttpServletRequest request, HttpServletResponse response, OneTimeToken oneTimeToken)
3737
throws IOException {
38-
this.logger.info("Use this one-time token: " + oneTimeToken.getTokenValue());
38+
this.logger.info(String.format("""
39+
********************************************************
40+
41+
Use this one-time token: %s
42+
43+
********************************************************""", oneTimeToken.getTokenValue()));
3944
response.sendRedirect("/login/ott");
4045
}
4146

servlet/spring-boot/java/authentication/mfa/formLogin+ott/src/main/resources/templates/login.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ <h2>Please sign in</h2>
1515

1616
<p>
1717
<label for="username" class="screenreader">Username</label>
18-
<input type="text" id="username" name="username" placeholder="Username" required autofocus>
18+
<input type="text" id="username" name="username" th:value="${username}" placeholder="Username" required autofocus>
1919
</p>
2020
<p>
2121
<label for="password" class="screenreader">Password</label>

servlet/spring-boot/java/authentication/mfa/formLogin+ott/src/main/resources/templates/ott.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010
</head>
1111
<body>
1212
<div class="content">
13-
<form class="login-form" method="post" th:action="@{/login/ott}">
14-
<h2>Please supply a token</h2>
13+
<form class="ott" method="post" th:action="@{/ott/generate}">
14+
<h2>Please click below to send a one-time token</h2>
1515

1616
<p>
17-
<label for="token" class="screenreader">Token</label>
18-
<input type="text" id="token" name="token" placeholder="Token" required autofocus>
17+
<label for="username" class="screenreader">Username</label>
18+
<input type="text" id="username" name="username" th:value="${username}" placeholder="Username" required autofocus>
1919
</p>
2020

21-
<button type="submit" class="primary">Use this Token</button>
21+
<button type="submit" class="primary">Send Token</button>
2222
</form>
2323
</div>
2424
</body>

servlet/spring-boot/java/authentication/mfa/oauth2/src/main/java/org/example/magiclink/SecurityConfig.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,10 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http, Authentication
6161
)
6262
.oauth2Login(Customizer.withDefaults())
6363
.exceptionHandling((exceptions) -> exceptions
64-
.defaultAuthenticationEntryPointFor(oauth2, "SCOPE_https://www.googleapis.com/auth/gmail.readonly")
64+
.missingAuthoritiesHandler((handler) -> handler
65+
.authorities("SCOPE_https://www.googleapis.com/auth/gmail.readonly")
66+
.commence(oauth2)
67+
)
6568
);
6669
// @formatter:on
6770
return http.build();

servlet/spring-boot/java/authentication/mfa/x509+webauthn/src/main/java/example/SecurityConfig.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,10 @@ SecurityFilterChain web(HttpSecurity http) throws Exception {
5454
.allowedOrigins("https://api.127.0.0.1.nip.io:8443")
5555
)
5656
.exceptionHandling((exceptions) -> exceptions
57-
.defaultAuthenticationEntryPointFor(new LoginUrlAuthenticationEntryPoint("/webauthn"), "FACTOR_WEBAUTHN")
57+
.missingAuthoritiesHandler((handler) -> handler
58+
.authorities("FACTOR_WEBAUTHN")
59+
.commence(new LoginUrlAuthenticationEntryPoint("/webauthn"))
60+
)
5861
);
5962
// @formatter:on
6063
return http.build();

0 commit comments

Comments
 (0)