我想直接使用java代码中没有spring应用程序上下文(或spring容器)的spring-security web-filters。
这可能吗?我可以直接调用不同的弹簧实时循环方法吗?如果有的话,是否有一个如何做到这一点的样本(需要注意哪些不同的接口及其排序)?
答案 0 :(得分:5)
我想在没有spring应用程序上下文的情况下使用spring-security web-filters
你不能。
因为您在web.xml
中定义了过滤器链代理:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
DelegatingFilterProxy
实际上希望在那里找到您的contextConfigLocation
和有效的配置文件:
<context-param>
<param-name>contextConfigLocation</param-name>
<!-- This must be valid otherwise your .war deployment will fail -->
<param-value>WEB-INF/spring-contexts/spring-contexts.xml</param-value>
</context-param>
答案 1 :(得分:3)
我认为这是可能的但不值得。
Spring是一个复杂的框架,可以隔离您配置Java应用程序的负担。你为什么要在没有Spring的情况下使用Spring?
关于你的问题,以前的Spring安全性Acegi声称可以在没有Spring的情况下使用。
所以你可以试试,但你的主要问题是在服务器启动时加载整个应用程序。您需要复制包含ContextLoaderListener的功能。
尝试创建自己的侦听器而不是
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
然后为您的应用程序配置主servlet(因为我假设您不想使用Spring MVC)和安全筛选器为 Simeon 表示。
祝你好运。
或者,您可以尝试Apache SHIRO