Skip to content

Commit bd8ca9b

Browse files
committed
Start building against Spring Security 7.0.0-RC1 snapshots
See gh-1681
1 parent 8b44029 commit bd8ca9b

File tree

4 files changed

+17
-31
lines changed

4 files changed

+17
-31
lines changed

spring-ws-platform/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ dependencies {
3030
api(platform("org.junit:junit-bom:5.13.3"))
3131
api(platform("org.slf4j:slf4j-bom:2.0.17"))
3232
api(platform("org.springframework:spring-framework-bom:${springFrameworkVersion}"))
33-
api(platform("org.springframework.security:spring-security-bom:7.0.0-M1"))
33+
api(platform("org.springframework.security:spring-security-bom:7.0.0-SNAPSHOT"))
3434
constraints {
3535
api("com.fasterxml.woodstox:woodstox-core:7.1.1")
3636
api("com.google.code.findbugs:jsr305:3.0.2")

spring-ws-security/src/main/java/org/springframework/ws/soap/security/wss4j2/callback/SpringSecurityPasswordValidationCallbackHandler.java

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package org.springframework.ws.soap.security.wss4j2.callback;
1818

19-
import java.io.IOException;
2019
import java.util.Objects;
2120

2221
import javax.security.auth.callback.UnsupportedCallbackException;
@@ -32,7 +31,6 @@
3231
import org.springframework.security.core.userdetails.UserCache;
3332
import org.springframework.security.core.userdetails.UserDetails;
3433
import org.springframework.security.core.userdetails.UserDetailsService;
35-
import org.springframework.security.core.userdetails.UsernameNotFoundException;
3634
import org.springframework.security.core.userdetails.cache.NullUserCache;
3735
import org.springframework.util.Assert;
3836
import org.springframework.ws.soap.security.callback.CleanupCallback;
@@ -80,21 +78,18 @@ public void afterPropertiesSet() throws Exception {
8078
* <p>
8179
* Default implementation throws an {@link UnsupportedCallbackException}.
8280
*/
83-
protected void handleUsernameToken(WSPasswordCallback callback) throws IOException, UnsupportedCallbackException {
81+
protected void handleUsernameToken(WSPasswordCallback callback) {
8482
UserDetails user = loadUserDetails(callback.getIdentifier());
85-
if (user != null) {
86-
SpringSecurityUtils.checkUserValidity(user);
87-
callback.setPassword(user.getPassword());
88-
}
83+
SpringSecurityUtils.checkUserValidity(user);
84+
callback.setPassword(user.getPassword());
8985
}
9086

9187
@Override
92-
protected void handleUsernameTokenPrincipal(UsernameTokenPrincipalCallback callback)
93-
throws IOException, UnsupportedCallbackException {
88+
protected void handleUsernameTokenPrincipal(UsernameTokenPrincipalCallback callback) {
9489
UserDetails user = loadUserDetails(callback.getPrincipal().getName());
9590
WSUsernameTokenPrincipalImpl principal = callback.getPrincipal();
9691
UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(principal,
97-
principal.getPassword(), (user != null) ? user.getAuthorities() : null);
92+
principal.getPassword(), user.getAuthorities());
9893
if (this.logger.isDebugEnabled()) {
9994
this.logger.debug("Authentication success: " + authRequest);
10095
}
@@ -103,23 +98,15 @@ protected void handleUsernameTokenPrincipal(UsernameTokenPrincipalCallback callb
10398
}
10499

105100
@Override
106-
protected void handleCleanup(CleanupCallback callback) throws IOException, UnsupportedCallbackException {
101+
protected void handleCleanup(CleanupCallback callback) {
107102
SecurityContextHolder.clearContext();
108103
}
109104

110-
private @Nullable UserDetails loadUserDetails(String username) throws DataAccessException {
105+
private UserDetails loadUserDetails(String username) throws DataAccessException {
111106
UserDetails user = this.userCache.getUserFromCache(username);
112107

113108
if (user == null) {
114-
try {
115-
user = Objects.requireNonNull(this.userDetailsService).loadUserByUsername(username);
116-
}
117-
catch (UsernameNotFoundException notFound) {
118-
if (this.logger.isDebugEnabled()) {
119-
this.logger.debug("Username '" + username + "' not found");
120-
}
121-
return null;
122-
}
109+
user = Objects.requireNonNull(this.userDetailsService).loadUserByUsername(username);
123110
this.userCache.putUserInCache(user);
124111
}
125112
return user;

spring-ws-security/src/main/java/org/springframework/ws/soap/security/x509/X509AuthenticationToken.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import org.springframework.security.authentication.AbstractAuthenticationToken;
2626
import org.springframework.security.core.GrantedAuthority;
27+
import org.springframework.security.core.authority.AuthorityUtils;
2728

2829
/**
2930
* {@code Authentication} implementation for X.509 client-certificate authentication.
@@ -55,7 +56,7 @@ public class X509AuthenticationToken extends AbstractAuthenticationToken {
5556
* @param credentials the certificate
5657
*/
5758
public X509AuthenticationToken(X509Certificate credentials) {
58-
super(null);
59+
super(AuthorityUtils.NO_AUTHORITIES);
5960
this.credentials = credentials;
6061
}
6162

spring-ws-security/src/test/java/org/springframework/ws/soap/security/wss4j2/callback/SpringSecurityPasswordValidationCallbackHandlerTests.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.springframework.security.core.userdetails.UsernameNotFoundException;
3636

3737
import static org.assertj.core.api.Assertions.assertThat;
38+
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
3839
import static org.easymock.EasyMock.createMock;
3940
import static org.easymock.EasyMock.expect;
4041
import static org.easymock.EasyMock.replay;
@@ -73,7 +74,7 @@ void setUp() {
7374
}
7475

7576
@Test
76-
void testHandleUsernameToken() throws Exception {
77+
void testHandleUsernameToken() {
7778

7879
UserDetailsService userDetailsService = createMock(UserDetailsService.class);
7980
this.callbackHandler.setUserDetailsService(userDetailsService);
@@ -90,7 +91,7 @@ void testHandleUsernameToken() throws Exception {
9091
}
9192

9293
@Test
93-
void testHandleUsernameTokenUserNotFound() throws Exception {
94+
void testHandleUsernameTokenUserNotFound() {
9495

9596
UserDetailsService userDetailsService = createMock(UserDetailsService.class);
9697
this.callbackHandler.setUserDetailsService(userDetailsService);
@@ -100,15 +101,12 @@ void testHandleUsernameTokenUserNotFound() throws Exception {
100101

101102
replay(userDetailsService);
102103

103-
this.callbackHandler.handleUsernameToken(this.passwordCallback);
104-
105-
assertThat(this.passwordCallback.getPassword()).isNull();
106-
107-
verify(userDetailsService);
104+
assertThatExceptionOfType(UsernameNotFoundException.class)
105+
.isThrownBy(() -> this.callbackHandler.handleUsernameToken(this.passwordCallback));
108106
}
109107

110108
@Test
111-
void testHandleUsernameTokenPrincipal() throws Exception {
109+
void testHandleUsernameTokenPrincipal() {
112110

113111
UserDetailsService userDetailsService = createMock(UserDetailsService.class);
114112
this.callbackHandler.setUserDetailsService(userDetailsService);

0 commit comments

Comments
 (0)