(window.webpackJsonp=window.webpackJsonp||[]).push([[664],{1095:function(t,n,e){"use strict";e.r(n);var r=e(56),s=Object(r.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"设置mockmvc和-spring-安全性"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#设置mockmvc和-spring-安全性"}},[t._v("#")]),t._v(" 设置mockmvc和 Spring 安全性")]),t._v(" "),e("p",[t._v("为了使用 Spring 安全性与 Spring MVC测试,有必要将 Spring 安全性"),e("code",[t._v("FilterChainProxy")]),t._v("添加为"),e("code",[t._v("Filter")]),t._v("。还需要添加 Spring security的"),e("code",[t._v("TestSecurityContextHolderPostProcessor")]),t._v("以支持"),e("a",{attrs:{href:"#test-mockmvc-withmockuser"}},[t._v("Running as a User in Spring MVC Test with Annotations")]),t._v("。这可以使用 Spring security的"),e("code",[t._v("SecurityMockMvcConfigurers.springSecurity()")]),t._v("来完成。例如:")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th"),t._v(" "),e("th",[t._v("Spring 安全性的测试支持需要 Spring-test-4.1.3.release或更高版本。")])])]),t._v(" "),e("tbody")]),t._v(" "),e("p",[t._v("Java")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*;\n\n@RunWith(SpringJUnit4ClassRunner.class)\n@ContextConfiguration(classes = SecurityConfig.class)\n@WebAppConfiguration\npublic class CsrfShowcaseTests {\n\n\t@Autowired\n\tprivate WebApplicationContext context;\n\n\tprivate MockMvc mvc;\n\n\t@Before\n\tpublic void setup() {\n\t\tmvc = MockMvcBuilders\n\t\t\t\t.webAppContextSetup(context)\n\t\t\t\t.apply(springSecurity()) (1)\n\t\t\t\t.build();\n\t}\n\n...\n")])])]),e("p",[t._v("Kotlin")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("@RunWith(SpringJUnit4ClassRunner::class)\n@ContextConfiguration(classes = [SecurityConfig::class])\n@WebAppConfiguration\nclass CsrfShowcaseTests {\n\n @Autowired\n private lateinit var context: WebApplicationContext\n\n private var mvc: MockMvc? = null\n\n @Before\n fun setup() {\n mvc = MockMvcBuilders\n .webAppContextSetup(context)\n .apply(springSecurity()) (1)\n .build()\n }\n// ...\n")])])]),e("table",[e("thead",[e("tr",[e("th",[e("strong",[t._v("1")])]),t._v(" "),e("th",[e("code",[t._v("SecurityMockMvcConfigurers.springSecurity()")]),t._v("将执行将 Spring 安全性与 Spring MVC测试集成所需的所有初始设置")])])]),t._v(" "),e("tbody")]),t._v(" "),e("p",[e("RouterLink",{attrs:{to:"/spring-security/index.html"}},[t._v("MockMVC支持")]),e("RouterLink",{attrs:{to:"/spring-security/request-post-processors.html"}},[t._v("安全请求后置处理器")])],1)])}),[],!1,null,null,null);n.default=s.exports}}]);