Anonymous type can be replaced with lambda
This commit is contained in:
committed by
Josh Cummings
parent
05f42a4995
commit
fb39d9c255
+2
-12
@@ -178,19 +178,9 @@ public class AnnotationParameterNameDiscoverer implements ParameterNameDiscovere
|
||||
return null;
|
||||
}
|
||||
|
||||
private static final ParameterNameFactory<Constructor<?>> CONSTRUCTOR_METHODPARAM_FACTORY = new ParameterNameFactory<Constructor<?>>() {
|
||||
private static final ParameterNameFactory<Constructor<?>> CONSTRUCTOR_METHODPARAM_FACTORY = constructor -> constructor.getParameterAnnotations();
|
||||
|
||||
public Annotation[][] findParameterAnnotations(Constructor<?> constructor) {
|
||||
return constructor.getParameterAnnotations();
|
||||
}
|
||||
};
|
||||
|
||||
private static final ParameterNameFactory<Method> METHOD_METHODPARAM_FACTORY = new ParameterNameFactory<Method>() {
|
||||
|
||||
public Annotation[][] findParameterAnnotations(Method method) {
|
||||
return method.getParameterAnnotations();
|
||||
}
|
||||
};
|
||||
private static final ParameterNameFactory<Method> METHOD_METHODPARAM_FACTORY = method -> method.getParameterAnnotations();
|
||||
|
||||
/**
|
||||
* Strategy interface for looking up the parameter names.
|
||||
|
||||
+12
-28
@@ -16,8 +16,6 @@
|
||||
|
||||
package org.springframework.security.core.userdetails.jdbc;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@@ -27,7 +25,6 @@ import org.springframework.context.ApplicationContextException;
|
||||
import org.springframework.context.MessageSource;
|
||||
import org.springframework.context.MessageSourceAware;
|
||||
import org.springframework.context.support.MessageSourceAccessor;
|
||||
import org.springframework.jdbc.core.RowMapper;
|
||||
import org.springframework.jdbc.core.support.JdbcDaoSupport;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.core.SpringSecurityMessageSource;
|
||||
@@ -225,17 +222,12 @@ public class JdbcDaoImpl extends JdbcDaoSupport
|
||||
*/
|
||||
protected List<UserDetails> loadUsersByUsername(String username) {
|
||||
return getJdbcTemplate().query(this.usersByUsernameQuery,
|
||||
new String[] { username }, new RowMapper<UserDetails>() {
|
||||
@Override
|
||||
public UserDetails mapRow(ResultSet rs, int rowNum)
|
||||
throws SQLException {
|
||||
String username = rs.getString(1);
|
||||
String password = rs.getString(2);
|
||||
boolean enabled = rs.getBoolean(3);
|
||||
return new User(username, password, enabled, true, true, true,
|
||||
AuthorityUtils.NO_AUTHORITIES);
|
||||
}
|
||||
|
||||
new String[] { username }, (rs, rowNum) -> {
|
||||
String username1 = rs.getString(1);
|
||||
String password = rs.getString(2);
|
||||
boolean enabled = rs.getBoolean(3);
|
||||
return new User(username1, password, enabled, true, true, true,
|
||||
AuthorityUtils.NO_AUTHORITIES);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -246,14 +238,10 @@ public class JdbcDaoImpl extends JdbcDaoSupport
|
||||
*/
|
||||
protected List<GrantedAuthority> loadUserAuthorities(String username) {
|
||||
return getJdbcTemplate().query(this.authoritiesByUsernameQuery,
|
||||
new String[] { username }, new RowMapper<GrantedAuthority>() {
|
||||
@Override
|
||||
public GrantedAuthority mapRow(ResultSet rs, int rowNum)
|
||||
throws SQLException {
|
||||
String roleName = JdbcDaoImpl.this.rolePrefix + rs.getString(2);
|
||||
new String[] { username }, (rs, rowNum) -> {
|
||||
String roleName = JdbcDaoImpl.this.rolePrefix + rs.getString(2);
|
||||
|
||||
return new SimpleGrantedAuthority(roleName);
|
||||
}
|
||||
return new SimpleGrantedAuthority(roleName);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -265,14 +253,10 @@ public class JdbcDaoImpl extends JdbcDaoSupport
|
||||
*/
|
||||
protected List<GrantedAuthority> loadGroupAuthorities(String username) {
|
||||
return getJdbcTemplate().query(this.groupAuthoritiesByUsernameQuery,
|
||||
new String[] { username }, new RowMapper<GrantedAuthority>() {
|
||||
@Override
|
||||
public GrantedAuthority mapRow(ResultSet rs, int rowNum)
|
||||
throws SQLException {
|
||||
String roleName = getRolePrefix() + rs.getString(3);
|
||||
new String[] { username }, (rs, rowNum) -> {
|
||||
String roleName = getRolePrefix() + rs.getString(3);
|
||||
|
||||
return new SimpleGrantedAuthority(roleName);
|
||||
}
|
||||
return new SimpleGrantedAuthority(roleName);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
+42
-70
@@ -32,16 +32,12 @@ import org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl;
|
||||
import org.springframework.context.ApplicationContextException;
|
||||
import org.springframework.dao.IncorrectResultSizeDataAccessException;
|
||||
import org.springframework.jdbc.core.PreparedStatementSetter;
|
||||
import org.springframework.jdbc.core.RowMapper;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@@ -176,20 +172,17 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa
|
||||
public void createUser(final UserDetails user) {
|
||||
validateUserDetails(user);
|
||||
|
||||
getJdbcTemplate().update(createUserSql, new PreparedStatementSetter() {
|
||||
@Override
|
||||
public void setValues(PreparedStatement ps) throws SQLException {
|
||||
ps.setString(1, user.getUsername());
|
||||
ps.setString(2, user.getPassword());
|
||||
ps.setBoolean(3, user.isEnabled());
|
||||
getJdbcTemplate().update(createUserSql, ps -> {
|
||||
ps.setString(1, user.getUsername());
|
||||
ps.setString(2, user.getPassword());
|
||||
ps.setBoolean(3, user.isEnabled());
|
||||
|
||||
int paramCount = ps.getParameterMetaData().getParameterCount();
|
||||
if (paramCount > 3) {
|
||||
//NOTE: acc_locked, acc_expired and creds_expired are also to be inserted
|
||||
ps.setBoolean(4, !user.isAccountNonLocked());
|
||||
ps.setBoolean(5, !user.isAccountNonExpired());
|
||||
ps.setBoolean(6, !user.isCredentialsNonExpired());
|
||||
}
|
||||
int paramCount = ps.getParameterMetaData().getParameterCount();
|
||||
if (paramCount > 3) {
|
||||
//NOTE: acc_locked, acc_expired and creds_expired are also to be inserted
|
||||
ps.setBoolean(4, !user.isAccountNonLocked());
|
||||
ps.setBoolean(5, !user.isAccountNonExpired());
|
||||
ps.setBoolean(6, !user.isCredentialsNonExpired());
|
||||
}
|
||||
});
|
||||
|
||||
@@ -201,25 +194,22 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa
|
||||
public void updateUser(final UserDetails user) {
|
||||
validateUserDetails(user);
|
||||
|
||||
getJdbcTemplate().update(updateUserSql, new PreparedStatementSetter() {
|
||||
@Override
|
||||
public void setValues(PreparedStatement ps) throws SQLException {
|
||||
ps.setString(1, user.getPassword());
|
||||
ps.setBoolean(2, user.isEnabled());
|
||||
getJdbcTemplate().update(updateUserSql, ps -> {
|
||||
ps.setString(1, user.getPassword());
|
||||
ps.setBoolean(2, user.isEnabled());
|
||||
|
||||
int paramCount = ps.getParameterMetaData().getParameterCount();
|
||||
if (paramCount == 3) {
|
||||
ps.setString(3, user.getUsername());
|
||||
} else {
|
||||
//NOTE: acc_locked, acc_expired and creds_expired are also updated
|
||||
ps.setBoolean(3, !user.isAccountNonLocked());
|
||||
ps.setBoolean(4, !user.isAccountNonExpired());
|
||||
ps.setBoolean(5, !user.isCredentialsNonExpired());
|
||||
|
||||
ps.setString(6, user.getUsername());
|
||||
}
|
||||
int paramCount = ps.getParameterMetaData().getParameterCount();
|
||||
if (paramCount == 3) {
|
||||
ps.setString(3, user.getUsername());
|
||||
} else {
|
||||
//NOTE: acc_locked, acc_expired and creds_expired are also updated
|
||||
ps.setBoolean(3, !user.isAccountNonLocked());
|
||||
ps.setBoolean(4, !user.isAccountNonExpired());
|
||||
ps.setBoolean(5, !user.isCredentialsNonExpired());
|
||||
|
||||
ps.setString(6, user.getUsername());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
if (getEnableAuthorities()) {
|
||||
@@ -337,11 +327,9 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa
|
||||
for (GrantedAuthority a : authorities) {
|
||||
final String authority = a.getAuthority();
|
||||
getJdbcTemplate().update(insertGroupAuthoritySql,
|
||||
new PreparedStatementSetter() {
|
||||
public void setValues(PreparedStatement ps) throws SQLException {
|
||||
ps.setInt(1, groupId);
|
||||
ps.setString(2, authority);
|
||||
}
|
||||
ps -> {
|
||||
ps.setInt(1, groupId);
|
||||
ps.setString(2, authority);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -351,11 +339,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa
|
||||
Assert.hasText(groupName, "groupName should have text");
|
||||
|
||||
final int id = findGroupId(groupName);
|
||||
PreparedStatementSetter groupIdPSS = new PreparedStatementSetter() {
|
||||
public void setValues(PreparedStatement ps) throws SQLException {
|
||||
ps.setInt(1, id);
|
||||
}
|
||||
};
|
||||
PreparedStatementSetter groupIdPSS = ps -> ps.setInt(1, id);
|
||||
getJdbcTemplate().update(deleteGroupMembersSql, groupIdPSS);
|
||||
getJdbcTemplate().update(deleteGroupAuthoritiesSql, groupIdPSS);
|
||||
getJdbcTemplate().update(deleteGroupSql, groupIdPSS);
|
||||
@@ -375,11 +359,9 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa
|
||||
Assert.hasText(groupName, "groupName should have text");
|
||||
|
||||
final int id = findGroupId(groupName);
|
||||
getJdbcTemplate().update(insertGroupMemberSql, new PreparedStatementSetter() {
|
||||
public void setValues(PreparedStatement ps) throws SQLException {
|
||||
ps.setInt(1, id);
|
||||
ps.setString(2, username);
|
||||
}
|
||||
getJdbcTemplate().update(insertGroupMemberSql, ps -> {
|
||||
ps.setInt(1, id);
|
||||
ps.setString(2, username);
|
||||
});
|
||||
|
||||
userCache.removeUserFromCache(username);
|
||||
@@ -392,11 +374,9 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa
|
||||
|
||||
final int id = findGroupId(groupName);
|
||||
|
||||
getJdbcTemplate().update(deleteGroupMemberSql, new PreparedStatementSetter() {
|
||||
public void setValues(PreparedStatement ps) throws SQLException {
|
||||
ps.setInt(1, id);
|
||||
ps.setString(2, username);
|
||||
}
|
||||
getJdbcTemplate().update(deleteGroupMemberSql, ps -> {
|
||||
ps.setInt(1, id);
|
||||
ps.setString(2, username);
|
||||
});
|
||||
|
||||
userCache.removeUserFromCache(username);
|
||||
@@ -407,13 +387,10 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa
|
||||
Assert.hasText(groupName, "groupName should have text");
|
||||
|
||||
return getJdbcTemplate().query(groupAuthoritiesSql, new String[] { groupName },
|
||||
new RowMapper<GrantedAuthority>() {
|
||||
public GrantedAuthority mapRow(ResultSet rs, int rowNum)
|
||||
throws SQLException {
|
||||
String roleName = getRolePrefix() + rs.getString(3);
|
||||
(rs, rowNum) -> {
|
||||
String roleName = getRolePrefix() + rs.getString(3);
|
||||
|
||||
return new SimpleGrantedAuthority(roleName);
|
||||
}
|
||||
return new SimpleGrantedAuthority(roleName);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -425,12 +402,9 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa
|
||||
|
||||
final int id = findGroupId(groupName);
|
||||
|
||||
getJdbcTemplate().update(deleteGroupAuthoritySql, new PreparedStatementSetter() {
|
||||
|
||||
public void setValues(PreparedStatement ps) throws SQLException {
|
||||
ps.setInt(1, id);
|
||||
ps.setString(2, authority.getAuthority());
|
||||
}
|
||||
getJdbcTemplate().update(deleteGroupAuthoritySql, ps -> {
|
||||
ps.setInt(1, id);
|
||||
ps.setString(2, authority.getAuthority());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -440,11 +414,9 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa
|
||||
Assert.notNull(authority, "authority cannot be null");
|
||||
|
||||
final int id = findGroupId(groupName);
|
||||
getJdbcTemplate().update(insertGroupAuthoritySql, new PreparedStatementSetter() {
|
||||
public void setValues(PreparedStatement ps) throws SQLException {
|
||||
ps.setInt(1, id);
|
||||
ps.setString(2, authority.getAuthority());
|
||||
}
|
||||
getJdbcTemplate().update(insertGroupAuthoritySql, ps -> {
|
||||
ps.setInt(1, id);
|
||||
ps.setString(2, authority.getAuthority());
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
+1
-9
@@ -19,15 +19,12 @@ import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.security.access.hierarchicalroles.RoleHierarchy;
|
||||
import org.springframework.security.authentication.AuthenticationTrustResolver;
|
||||
import org.springframework.security.authentication.TestingAuthenticationToken;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.core.authority.AuthorityUtils;
|
||||
|
||||
/**
|
||||
@@ -66,12 +63,7 @@ public class SecurityExpressionRootTests {
|
||||
|
||||
@Test
|
||||
public void roleHierarchySupportIsCorrectlyUsedInEvaluatingRoles() throws Exception {
|
||||
root.setRoleHierarchy(new RoleHierarchy() {
|
||||
public Collection<GrantedAuthority> getReachableGrantedAuthorities(
|
||||
Collection<? extends GrantedAuthority> authorities) {
|
||||
return AuthorityUtils.createAuthorityList("ROLE_C");
|
||||
}
|
||||
});
|
||||
root.setRoleHierarchy(authorities -> AuthorityUtils.createAuthorityList("ROLE_C"));
|
||||
|
||||
assertThat(root.hasRole("C")).isTrue();
|
||||
assertThat(root.hasAuthority("ROLE_C")).isTrue();
|
||||
|
||||
+1
-5
@@ -75,11 +75,7 @@ public abstract class HierarchicalRolesTestHelper {
|
||||
|
||||
for (final String role : roles) {
|
||||
// Use non SimpleGrantedAuthority (SEC-863)
|
||||
authorities.add(new GrantedAuthority() {
|
||||
public String getAuthority() {
|
||||
return role;
|
||||
}
|
||||
});
|
||||
authorities.add((GrantedAuthority) () -> role);
|
||||
}
|
||||
|
||||
return authorities;
|
||||
|
||||
+1
-5
@@ -234,11 +234,7 @@ public class JaasAuthenticationProviderTests {
|
||||
@Test
|
||||
public void testLoginExceptionResolver() {
|
||||
assertThat(jaasProvider.getLoginExceptionResolver()).isNotNull();
|
||||
jaasProvider.setLoginExceptionResolver(new LoginExceptionResolver() {
|
||||
public AuthenticationException resolveException(LoginException e) {
|
||||
return new LockedException("This is just a test!");
|
||||
}
|
||||
});
|
||||
jaasProvider.setLoginExceptionResolver(e -> new LockedException("This is just a test!"));
|
||||
|
||||
try {
|
||||
jaasProvider.authenticate(new UsernamePasswordAuthenticationToken("user",
|
||||
|
||||
+2
-12
@@ -16,8 +16,6 @@
|
||||
|
||||
package org.springframework.security.authentication.jaas;
|
||||
|
||||
import java.security.Principal;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import javax.security.auth.Subject;
|
||||
@@ -77,17 +75,9 @@ public class TestLoginModule implements LoginModule {
|
||||
throw new LoginException("Bad Password");
|
||||
}
|
||||
|
||||
subject.getPrincipals().add(new Principal() {
|
||||
public String getName() {
|
||||
return "TEST_PRINCIPAL";
|
||||
}
|
||||
});
|
||||
subject.getPrincipals().add(() -> "TEST_PRINCIPAL");
|
||||
|
||||
subject.getPrincipals().add(new Principal() {
|
||||
public String getName() {
|
||||
return "NULL_PRINCIPAL";
|
||||
}
|
||||
});
|
||||
subject.getPrincipals().add(() -> "NULL_PRINCIPAL");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
+3
-6
@@ -28,7 +28,6 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.invocation.InvocationOnMock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
import org.mockito.stubbing.Answer;
|
||||
import org.springframework.core.task.SyncTaskExecutor;
|
||||
@@ -59,11 +58,9 @@ public class DelegatingSecurityContextRunnableTests {
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
originalSecurityContext = SecurityContextHolder.createEmptyContext();
|
||||
doAnswer(new Answer<Object>() {
|
||||
public Object answer(InvocationOnMock invocation) throws Throwable {
|
||||
assertThat(SecurityContextHolder.getContext()).isEqualTo(securityContext);
|
||||
return null;
|
||||
}
|
||||
doAnswer((Answer<Object>) invocation -> {
|
||||
assertThat(SecurityContextHolder.getContext()).isEqualTo(securityContext);
|
||||
return null;
|
||||
}).when(delegate).run();
|
||||
|
||||
executor = Executors.newFixedThreadPool(1);
|
||||
|
||||
+6
-8
@@ -48,14 +48,12 @@ public class UserDetailsByNameServiceWrapperTests {
|
||||
UserDetailsByNameServiceWrapper svc = new UserDetailsByNameServiceWrapper();
|
||||
final User user = new User("dummy", "dummy", true, true, true, true,
|
||||
AuthorityUtils.NO_AUTHORITIES);
|
||||
svc.setUserDetailsService(new UserDetailsService() {
|
||||
public UserDetails loadUserByUsername(String name) {
|
||||
if (user != null && user.getUsername().equals(name)) {
|
||||
return user;
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
svc.setUserDetailsService(name -> {
|
||||
if (user != null && user.getUsername().equals(name)) {
|
||||
return user;
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
svc.afterPropertiesSet();
|
||||
|
||||
Reference in New Issue
Block a user