SEC-933: Added test for security pointcut applied to a UserDetailsService.
This commit is contained in:
parent
d7926f3557
commit
ef44bd91f2
|
@ -1,9 +1,8 @@
|
||||||
package org.springframework.security.config;
|
package org.springframework.security.config;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.springframework.beans.factory.parsing.BeanDefinitionParsingException;
|
import org.springframework.beans.factory.parsing.BeanDefinitionParsingException;
|
||||||
import org.springframework.context.support.AbstractXmlApplicationContext;
|
import org.springframework.context.support.AbstractXmlApplicationContext;
|
||||||
|
@ -15,6 +14,7 @@ import org.springframework.security.GrantedAuthorityImpl;
|
||||||
import org.springframework.security.annotation.BusinessService;
|
import org.springframework.security.annotation.BusinessService;
|
||||||
import org.springframework.security.context.SecurityContextHolder;
|
import org.springframework.security.context.SecurityContextHolder;
|
||||||
import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
|
import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
|
||||||
|
import org.springframework.security.userdetails.UserDetailsService;
|
||||||
import org.springframework.security.util.InMemoryXmlApplicationContext;
|
import org.springframework.security.util.InMemoryXmlApplicationContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -79,7 +79,28 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
|
||||||
|
|
||||||
assertEquals("Hello from the post processor!", service.getPostProcessorWasHere());
|
assertEquals("Hello from the post processor!", service.getPostProcessorWasHere());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test(expected=AccessDeniedException.class)
|
||||||
|
public void worksWithAspectJAutoproxy() {
|
||||||
|
setContext(
|
||||||
|
"<global-method-security>" +
|
||||||
|
" <protect-pointcut expression='execution(* org.springframework.security.config.*Service.*(..))'" +
|
||||||
|
" access='ROLE_SOMETHING' />" +
|
||||||
|
"</global-method-security>" +
|
||||||
|
"<b:bean id='myUserService' class='org.springframework.security.config.PostProcessedMockUserDetailsService'/>" +
|
||||||
|
"<aop:aspectj-autoproxy />" +
|
||||||
|
"<authentication-provider user-service-ref='myUserService'/>"
|
||||||
|
);
|
||||||
|
|
||||||
|
UserDetailsService service = (UserDetailsService) appContext.getBean("myUserService");
|
||||||
|
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
|
||||||
|
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_SOMEOTHERROLE")});
|
||||||
|
SecurityContextHolder.getContext().setAuthentication(token);
|
||||||
|
|
||||||
|
service.loadUserByUsername("notused");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test(expected=BeanDefinitionParsingException.class)
|
@Test(expected=BeanDefinitionParsingException.class)
|
||||||
public void duplicateElementCausesError() {
|
public void duplicateElementCausesError() {
|
||||||
setContext(
|
setContext(
|
||||||
|
@ -92,3 +113,5 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
|
||||||
appContext = new InMemoryXmlApplicationContext(context);
|
appContext = new InMemoryXmlApplicationContext(context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue