mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-07-06 02:32:14 +00:00
Polish Tests
Issue gh-9331
This commit is contained in:
parent
7a5c34ca57
commit
68ac3ef36b
@ -22,13 +22,11 @@ import java.lang.annotation.Retention;
|
|||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.springframework.core.MethodParameter;
|
import org.springframework.core.MethodParameter;
|
||||||
import org.springframework.expression.AccessException;
|
|
||||||
import org.springframework.expression.BeanResolver;
|
import org.springframework.expression.BeanResolver;
|
||||||
import org.springframework.security.authentication.TestingAuthenticationToken;
|
import org.springframework.security.authentication.TestingAuthenticationToken;
|
||||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||||
@ -38,24 +36,26 @@ import org.springframework.security.core.userdetails.User;
|
|||||||
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
import org.springframework.util.ReflectionUtils;
|
import org.springframework.util.ReflectionUtils;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
|
import static org.mockito.BDDMockito.mock;
|
||||||
|
import static org.mockito.BDDMockito.verify;
|
||||||
|
import static org.mockito.BDDMockito.when;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Rob Winch
|
* @author Rob Winch
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class AuthenticationPrincipalArgumentResolverTests {
|
public class AuthenticationPrincipalArgumentResolverTests {
|
||||||
|
|
||||||
private final BeanResolver beanResolver = ((context, beanName) -> {
|
private BeanResolver beanResolver;
|
||||||
if (!"test".equals(beanName)) {
|
|
||||||
throw new AccessException("Could not resolve bean reference against BeanFactory");
|
|
||||||
}
|
|
||||||
return (Function<CustomUserPrincipal, String>) (principal) -> principal.property;
|
|
||||||
});
|
|
||||||
|
|
||||||
private Object expectedPrincipal;
|
private Object expectedPrincipal;
|
||||||
private AuthenticationPrincipalArgumentResolver resolver;
|
private AuthenticationPrincipalArgumentResolver resolver;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
|
beanResolver = mock(BeanResolver.class);
|
||||||
resolver = new AuthenticationPrincipalArgumentResolver();
|
resolver = new AuthenticationPrincipalArgumentResolver();
|
||||||
resolver.setBeanResolver(this.beanResolver);
|
resolver.setBeanResolver(this.beanResolver);
|
||||||
}
|
}
|
||||||
@ -144,8 +144,11 @@ public class AuthenticationPrincipalArgumentResolverTests {
|
|||||||
public void resolveArgumentSpelBean() throws Exception {
|
public void resolveArgumentSpelBean() throws Exception {
|
||||||
CustomUserPrincipal principal = new CustomUserPrincipal();
|
CustomUserPrincipal principal = new CustomUserPrincipal();
|
||||||
setAuthenticationPrincipal(principal);
|
setAuthenticationPrincipal(principal);
|
||||||
|
when(this.beanResolver.resolve(any(), eq("test"))).thenReturn(principal.property);
|
||||||
this.expectedPrincipal = principal.property;
|
this.expectedPrincipal = principal.property;
|
||||||
assertThat(this.resolver.resolveArgument(showUserSpelBean(), null, null, null)).isEqualTo(this.expectedPrincipal);
|
assertThat(this.resolver.resolveArgument(showUserSpelBean(), null, null, null))
|
||||||
|
.isEqualTo(this.expectedPrincipal);
|
||||||
|
verify(this.beanResolver).resolve(any(), eq("test"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -279,8 +282,7 @@ public class AuthenticationPrincipalArgumentResolverTests {
|
|||||||
@AuthenticationPrincipal(expression = "property") String user) {
|
@AuthenticationPrincipal(expression = "property") String user) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showUserSpelBean(@AuthenticationPrincipal(
|
public void showUserSpelBean(@AuthenticationPrincipal(expression = "@test") String user) {
|
||||||
expression = "@test.apply(#this)") String user) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showUserSpelCopy(
|
public void showUserSpelCopy(
|
||||||
|
@ -20,14 +20,12 @@ import java.lang.annotation.Retention;
|
|||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.springframework.core.MethodParameter;
|
import org.springframework.core.MethodParameter;
|
||||||
import org.springframework.expression.AccessException;
|
|
||||||
import org.springframework.expression.BeanResolver;
|
import org.springframework.expression.BeanResolver;
|
||||||
import org.springframework.expression.spel.SpelEvaluationException;
|
import org.springframework.expression.spel.SpelEvaluationException;
|
||||||
import org.springframework.security.authentication.TestingAuthenticationToken;
|
import org.springframework.security.authentication.TestingAuthenticationToken;
|
||||||
@ -41,6 +39,11 @@ import org.springframework.util.ReflectionUtils;
|
|||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
|
import static org.mockito.BDDMockito.mock;
|
||||||
|
import static org.mockito.BDDMockito.verify;
|
||||||
|
import static org.mockito.BDDMockito.when;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Dan Zheng
|
* @author Dan Zheng
|
||||||
@ -49,17 +52,13 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
|||||||
*/
|
*/
|
||||||
public class CurrentSecurityContextArgumentResolverTests {
|
public class CurrentSecurityContextArgumentResolverTests {
|
||||||
|
|
||||||
private final BeanResolver beanResolver = ((context, beanName) -> {
|
private BeanResolver beanResolver;
|
||||||
if (!"test".equals(beanName)) {
|
|
||||||
throw new AccessException("Could not resolve bean reference against BeanFactory");
|
|
||||||
}
|
|
||||||
return (Function<SecurityContext, Authentication>) SecurityContext::getAuthentication;
|
|
||||||
});
|
|
||||||
|
|
||||||
private CurrentSecurityContextArgumentResolver resolver;
|
private CurrentSecurityContextArgumentResolver resolver;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
|
this.beanResolver = mock(BeanResolver.class);
|
||||||
this.resolver = new CurrentSecurityContextArgumentResolver();
|
this.resolver = new CurrentSecurityContextArgumentResolver();
|
||||||
this.resolver.setBeanResolver(this.beanResolver);
|
this.resolver.setBeanResolver(this.beanResolver);
|
||||||
}
|
}
|
||||||
@ -117,12 +116,12 @@ public class CurrentSecurityContextArgumentResolverTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveArgumentWithAuthenticationWithBean() {
|
public void resolveArgumentWithAuthenticationWithBean() throws Exception {
|
||||||
String principal = "john";
|
String principal = "john";
|
||||||
setAuthenticationPrincipal(principal);
|
when(this.beanResolver.resolve(any(), eq("test"))).thenReturn(principal);
|
||||||
Authentication auth1 = (Authentication) this.resolver
|
assertThat(this.resolver.resolveArgument(showSecurityContextAuthenticationWithBean(), null, null, null))
|
||||||
.resolveArgument(showSecurityContextAuthenticationWithBean(), null, null, null);
|
.isEqualTo(principal);
|
||||||
assertThat(auth1.getPrincipal()).isEqualTo(principal);
|
verify(this.beanResolver).resolve(any(), eq("test"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -239,7 +238,7 @@ public class CurrentSecurityContextArgumentResolverTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public MethodParameter showSecurityContextAuthenticationWithBean() {
|
public MethodParameter showSecurityContextAuthenticationWithBean() {
|
||||||
return getMethodParameter("showSecurityContextAuthenticationWithBean", Authentication.class);
|
return getMethodParameter("showSecurityContextAuthenticationWithBean", String.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
private MethodParameter showSecurityContextAuthenticationWithOptionalPrincipal() {
|
private MethodParameter showSecurityContextAuthenticationWithOptionalPrincipal() {
|
||||||
@ -305,7 +304,7 @@ public class CurrentSecurityContextArgumentResolverTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void showSecurityContextAuthenticationWithBean(
|
public void showSecurityContextAuthenticationWithBean(
|
||||||
@CurrentSecurityContext(expression = "@test.apply(#this)") Authentication authentication) {
|
@CurrentSecurityContext(expression = "@test") String name) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showSecurityContextAuthenticationWithOptionalPrincipal(@CurrentSecurityContext(expression = "authentication?.principal") Object principal) {
|
public void showSecurityContextAuthenticationWithOptionalPrincipal(@CurrentSecurityContext(expression = "authentication?.principal") Object principal) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user