2017-01-09 32 views
0

我手動一個新的春天的FilterChainProxy創建:觸發手動一個FilterChainProxy

private FilterChainProxy getCustomFilterChainProxy() 
{ 
    List<SecurityFilterChain> securityFilterChains = new ArrayList<SecurityFilterChain>(); 
    securityFilterChains.add(new DefaultSecurityFilterChain(new AntPathRequestMatcher("/**"), new MyFilter1())); 
    securityFilterChains.add(new DefaultSecurityFilterChain(new AntPathRequestMatcher("/admin/**"), new MyFilter2())); 

    return new FilterChainProxy(securityFilterChains);  
} 

,並考慮到我有一個新的HttpServletRequest,我想覈對定製的FilterChainProxy的請求。事情是這樣的:

FilterChainProxy customFilterChainProxy = getCustomFilterChainProxy(); 
customFilterChainProxy.doFilter(request, null, (FilterChain) customFilterChainProxy.getFilterChains()); 

但我掙扎在正確定義FilterChain的doFilter()方法的第三個參數中。

我該怎麼做?

感謝。

回答

0

爲什麼不寫一個集成測試,使用MockMvc.apply(SecurityMockMvcConfigurers.springSecurity())Here是一個關於集成MockMvc和SpringSecurity的帖子的鏈接。

這是非常有用的,並允許您測試您的登錄和受保護的服務。在我試圖查看它是否在瀏覽器中正常工作之前,我經常發現自己正在編寫/修改測試。