Skip to content

Commit c2d2cc8

Browse files
committed
Update to Latest
1 parent 7593a53 commit c2d2cc8

File tree

5 files changed

+8
-104
lines changed

5 files changed

+8
-104
lines changed

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

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,14 @@
1616

1717
package org.example.magiclink;
1818

19-
import java.util.ArrayList;
20-
import java.util.Collection;
21-
import java.util.List;
22-
import java.util.function.Supplier;
23-
2419
import org.jspecify.annotations.NullMarked;
25-
import org.jspecify.annotations.Nullable;
2620

27-
import org.springframework.security.authorization.AuthorityAuthorizationDecision;
21+
import org.springframework.security.authorization.AllAuthoritiesAuthorizationManager;
2822
import org.springframework.security.authorization.AuthorizationDecision;
2923
import org.springframework.security.authorization.AuthorizationManager;
3024
import org.springframework.security.authorization.AuthorizationManagerFactory;
3125
import org.springframework.security.authorization.AuthorizationManagers;
32-
import org.springframework.security.authorization.AuthorizationResult;
3326
import org.springframework.security.authorization.DefaultAuthorizationManagerFactory;
34-
import org.springframework.security.core.Authentication;
35-
import org.springframework.security.core.GrantedAuthority;
36-
import org.springframework.security.core.authority.AuthorityUtils;
3727

3828
@NullMarked
3929
public final class FactorAuthorizationManagerFactory implements AuthorizationManagerFactory<Object> {
@@ -45,7 +35,7 @@ public final class FactorAuthorizationManagerFactory implements AuthorizationMan
4535
private final AuthorizationManagerFactory<Object> defaults = new DefaultAuthorizationManagerFactory<>();
4636

4737
public FactorAuthorizationManagerFactory(String... authorities) {
48-
this.factors = new HasAll(authorities);
38+
this.factors = AllAuthoritiesAuthorizationManager.hasAllAuthorities(authorities);
4939
}
5040

5141
@Override
@@ -98,24 +88,4 @@ public AuthorizationManager<Object> anonymous() {
9888
return this.defaults.anonymous();
9989
}
10090

101-
private static final class HasAll implements AuthorizationManager<Object> {
102-
private final Collection<String> authorities;
103-
104-
private HasAll(String... authorities) {
105-
this.authorities = List.of(authorities);
106-
}
107-
108-
@Override
109-
public AuthorizationResult authorize(Supplier<? extends @Nullable Authentication> supplier, @Nullable Object object) {
110-
Authentication authentication = supplier.get();
111-
List<String> authorities = List.of();
112-
if (authentication != null) {
113-
authorities = authentication.getAuthorities().stream().map(GrantedAuthority::getAuthority).toList();
114-
}
115-
List<String> needed = new ArrayList<>(this.authorities);
116-
needed.removeIf(authorities::contains);
117-
return new AuthorityAuthorizationDecision(needed.isEmpty(), AuthorityUtils.createAuthorityList(needed));
118-
}
119-
}
120-
12191
}

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

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

servlet/spring-boot/java/authentication/mfa/x509+formLogin/src/main/java/example/FactorAuthorizationManagerFactory.java

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,14 @@
1616

1717
package example;
1818

19-
import java.util.ArrayList;
20-
import java.util.Collection;
21-
import java.util.List;
22-
import java.util.function.Supplier;
23-
2419
import org.jspecify.annotations.NullMarked;
25-
import org.jspecify.annotations.Nullable;
2620

27-
import org.springframework.security.authorization.AuthorityAuthorizationDecision;
21+
import org.springframework.security.authorization.AllAuthoritiesAuthorizationManager;
2822
import org.springframework.security.authorization.AuthorizationDecision;
2923
import org.springframework.security.authorization.AuthorizationManager;
3024
import org.springframework.security.authorization.AuthorizationManagerFactory;
3125
import org.springframework.security.authorization.AuthorizationManagers;
32-
import org.springframework.security.authorization.AuthorizationResult;
3326
import org.springframework.security.authorization.DefaultAuthorizationManagerFactory;
34-
import org.springframework.security.core.Authentication;
35-
import org.springframework.security.core.GrantedAuthority;
36-
import org.springframework.security.core.authority.AuthorityUtils;
3727

3828
@NullMarked
3929
public final class FactorAuthorizationManagerFactory implements AuthorizationManagerFactory<Object> {
@@ -45,7 +35,7 @@ public final class FactorAuthorizationManagerFactory implements AuthorizationMan
4535
private final AuthorizationManagerFactory<Object> defaults = new DefaultAuthorizationManagerFactory<>();
4636

4737
public FactorAuthorizationManagerFactory(String... authorities) {
48-
this.factors = new HasAll(authorities);
38+
this.factors = AllAuthoritiesAuthorizationManager.hasAllAuthorities(authorities);
4939
}
5040

5141
@Override
@@ -98,24 +88,4 @@ public AuthorizationManager<Object> anonymous() {
9888
return this.defaults.anonymous();
9989
}
10090

101-
private static final class HasAll implements AuthorizationManager<Object> {
102-
private final Collection<String> authorities;
103-
104-
private HasAll(String... authorities) {
105-
this.authorities = List.of(authorities);
106-
}
107-
108-
@Override
109-
public AuthorizationResult authorize(Supplier<? extends @Nullable Authentication> supplier, @Nullable Object object) {
110-
Authentication authentication = supplier.get();
111-
List<String> authorities = List.of();
112-
if (authentication != null) {
113-
authorities = authentication.getAuthorities().stream().map(GrantedAuthority::getAuthority).toList();
114-
}
115-
List<String> needed = new ArrayList<>(this.authorities);
116-
needed.removeIf(authorities::contains);
117-
return new AuthorityAuthorizationDecision(needed.isEmpty(), AuthorityUtils.createAuthorityList(needed));
118-
}
119-
}
120-
12191
}

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

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,14 @@
1616

1717
package example;
1818

19-
import java.util.ArrayList;
20-
import java.util.Collection;
21-
import java.util.List;
22-
import java.util.function.Supplier;
23-
2419
import org.jspecify.annotations.NullMarked;
25-
import org.jspecify.annotations.Nullable;
2620

27-
import org.springframework.security.authorization.AuthorityAuthorizationDecision;
21+
import org.springframework.security.authorization.AllAuthoritiesAuthorizationManager;
2822
import org.springframework.security.authorization.AuthorizationDecision;
2923
import org.springframework.security.authorization.AuthorizationManager;
3024
import org.springframework.security.authorization.AuthorizationManagerFactory;
3125
import org.springframework.security.authorization.AuthorizationManagers;
32-
import org.springframework.security.authorization.AuthorizationResult;
3326
import org.springframework.security.authorization.DefaultAuthorizationManagerFactory;
34-
import org.springframework.security.core.Authentication;
35-
import org.springframework.security.core.GrantedAuthority;
36-
import org.springframework.security.core.authority.AuthorityUtils;
3727

3828
@NullMarked
3929
public final class FactorAuthorizationManagerFactory implements AuthorizationManagerFactory<Object> {
@@ -45,7 +35,7 @@ public final class FactorAuthorizationManagerFactory implements AuthorizationMan
4535
private final AuthorizationManagerFactory<Object> defaults = new DefaultAuthorizationManagerFactory<>();
4636

4737
public FactorAuthorizationManagerFactory(String... authorities) {
48-
this.factors = new HasAll(authorities);
38+
this.factors = AllAuthoritiesAuthorizationManager.hasAllAuthorities(authorities);
4939
}
5040

5141
@Override
@@ -98,24 +88,4 @@ public AuthorizationManager<Object> anonymous() {
9888
return this.defaults.anonymous();
9989
}
10090

101-
private static final class HasAll implements AuthorizationManager<Object> {
102-
private final Collection<String> authorities;
103-
104-
private HasAll(String... authorities) {
105-
this.authorities = List.of(authorities);
106-
}
107-
108-
@Override
109-
public AuthorizationResult authorize(Supplier<? extends @Nullable Authentication> supplier, @Nullable Object object) {
110-
Authentication authentication = supplier.get();
111-
List<String> authorities = List.of();
112-
if (authentication != null) {
113-
authorities = authentication.getAuthorities().stream().map(GrantedAuthority::getAuthority).toList();
114-
}
115-
List<String> needed = new ArrayList<>(this.authorities);
116-
needed.removeIf(authorities::contains);
117-
return new AuthorityAuthorizationDecision(needed.isEmpty(), AuthorityUtils.createAuthorityList(needed));
118-
}
119-
}
120-
12191
}

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

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

0 commit comments

Comments
 (0)