MockMvc および Spring Security のセットアップ
Spring Security のテストサポートには、spring-test-4.1.3.RELEASE 以降が必要です。 |
Spring MVC テストで Spring Security を使用するには、Spring Security FilterChainProxy
を Filter
として追加します。また、アノテーション付きの Spring MVC テストでユーザーとして実行をサポートするには、Spring Security の TestSecurityContextHolderPostProcessor
を追加する必要があります。これを行うには、Spring Security の SecurityMockMvcConfigurers.springSecurity()
を使用します。
Java
Kotlin
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*;
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = SecurityConfig.class)
@WebAppConfiguration
public class CsrfShowcaseTests {
@Autowired
private WebApplicationContext context;
private MockMvc mvc;
@BeforeEach
public void setup() {
mvc = MockMvcBuilders
.webAppContextSetup(context)
.apply(springSecurity()) (1)
.build();
}
// ...
}
@ExtendWith(SpringExtension::class)
@ContextConfiguration(classes = [SecurityConfig::class])
@WebAppConfiguration
class CsrfShowcaseTests {
@Autowired
private lateinit var context: WebApplicationContext
private lateinit var mvc: MockMvc
@BeforeEach
fun setup() {
mvc = MockMvcBuilders
.webAppContextSetup(context)
.apply<DefaultMockMvcBuilder>(springSecurity()) (1)
.build()
}
// ...
}
1 | SecurityMockMvcConfigurers.springSecurity() は、Spring Security と Spring MVC テストを統合するために必要なすべての初期セットアップを実行します。 |