2017-03-08 23 views
0

目前我在我的web應用程序中使用了Struts 2框架,現在我已經在Spring SAML擴展和ADFS服務器的幫助下集成了單點登錄,現在每件事情除Struts 2操作外,其他工作都很好,當我要調用/命中任何類似example.com/myapplication/myactionname.action的Struts操作時,Spring SSO從不要求身份驗證。如何在Spring單點登錄中保護Struts動作

但是,當我打任何的.jsp或.js文件OR的.css或.html文件

例。 example.com/myapplication/test.jsp文件在應用程序中會提示進行身份驗證。

Screenshot image

任何想法如何保證Struts動作與Spring的單點登錄,因此任何人都不能沒有任何身份驗證直接訪問操作URL?

+0

當我看到這樣的窗口時,它表示發生了一些錯誤或異常,我去看服務器日誌。 –

+0

你可以發佈你的Spring Security配置嗎? – user497087

+0

日誌中沒有錯誤或異常,使用我們可以從Spring單點登錄安全性中排除任何URL模式,但是如何包含任何URL模式/ Struts在春季安全行動。 – Akash

回答

0

最後我得到了解決方案,我在我的web.xml中同時使用了Spring和Struts過濾器,我只是改變了過濾器的順序,並且爲我工作。

<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping>