@ -16,11 +16,18 @@
@@ -16,11 +16,18 @@
package org.springframework.security.test.context.showcase ;
import java.lang.annotation.ElementType ;
import java.lang.annotation.Inherited ;
import java.lang.annotation.Retention ;
import java.lang.annotation.RetentionPolicy ;
import java.lang.annotation.Target ;
import org.junit.jupiter.api.Test ;
import org.junit.jupiter.api.extension.ExtendWith ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.context.annotation.ComponentScan ;
import org.springframework.core.annotation.AliasFor ;
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException ;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder ;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity ;
@ -77,6 +84,24 @@ public class WithMockUserTests {
@@ -77,6 +84,24 @@ public class WithMockUserTests {
assertThat ( message ) . contains ( "admin" ) . contains ( "ADMIN" ) . contains ( "USER" ) . doesNotContain ( "ROLE_" ) ;
}
@Retention ( RetentionPolicy . RUNTIME )
@Target ( ElementType . METHOD )
@Inherited
@WithMockUser ( roles = "ADMIN" )
public @interface WithAdminUser {
@AliasFor ( annotation = WithMockUser . class , attribute = "value" )
String value ( ) ;
}
@Test
@WithAdminUser ( "admin" )
public void getMessageWithMetaAnnotationAdminUser ( ) {
String message = this . messageService . getMessage ( ) ;
assertThat ( message ) . contains ( "admin" ) . contains ( "ADMIN" ) . contains ( "ROLE_ADMIN" ) ;
}
@EnableGlobalMethodSecurity ( prePostEnabled = true )
@ComponentScan ( basePackageClasses = HelloMessageService . class )
static class Config {