如何使用 Spring 单点登录保护 Struts 操作

How to secure Struts actions with Spring single-sign-on

目前我在我的 Web 应用程序中使用 Struts 2 框架,现在我在 Spring SAML 扩展和 ADFS 服务器的帮助下集成了单点登录,现在一切正常很好,除了 Struts 2 个操作,

当我要执行 call/hit 任何 Struts 操作时,例如 com/myapplication/myactionname.action URL 然后 Spring SSO 从不要求身份验证。

但是当我点击任何 .jsp OR .js OR .css OR .html 文件时

例如。例如。com/myapplication/test.jsp 应用程序中的文件将提示进行身份验证。

关于如何使用 Spring 单点登录来保护 Struts 操作,以便任何人在没有任何身份验证的情况下都无法直接访问操作 URL 有什么想法吗?

我终于找到了解决方案,我的 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>