SpringSecurityConfig单元测试,用于忽略特定URL上的web安全性

am46iovg  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(157)

我们有一个securityconfig类,它的方法是我们从WebSecurityConfigureAdapter获得的

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers(ignorePatterns);
}

我们使用的忽略模式是用于url的,我们不希望应用任何身份验证(我们使用承载令牌),我正在尝试为此编写一个单元测试,以确保行为按预期进行

@RunWith(SpringRunner.class)
@SpringBootTest(classes = SecurityConfig.class)
@WebAppConfiguration
public class Test {

    private MockMvc mockMvc;

    @Autowired
    private WebApplicationContext webApplicationContext;

    @Autowired
    private FilterChainProxy springSecurityFilterChain;

    @Before
    public void setup() throws Exception {
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).addFilter(springSecurityFilterChain).build();
    }

    @Test
    public void testAuthenticationAtWhiteListedURL() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/api/swagger-ui/index.html?url=/v3/api-docs")
            .header("Authorization", "Bearer: foo"))
            .andExpect(status().isOk());
    }

    @Test
    public void testAuthenticationAtNonWhiteListedURL() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/needs-authentication")
            .header("Authorization", "Bearer: foo"))
            .andExpect(status().isOk());
    }
}

但是这两个测试都很正常,这是不可预料的,以前有人测试过类似的东西吗?最好的方法是什么?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题