2

我是spring security的初学者,对此我有疑问((我使用了spring security 3.1))。我有一个项目,我必须从 Db 而不是 springSecurity 应用程序上下文中读取所有 spring security url 模式。

我该怎么做?我的观点是如何在我的 java 类中管理对特殊 url 的访问,而不是在 springSecurity 应用程序上下文中使用下面的配置。

<intercept-url pattern="/customer/showAll" access="hasAnyRole('OPERATOR,ADMIN')"/>

谢谢你

4

1 回答 1

3

您可以提供自己的FilterInvocationSecurityMetadataSource实现。在Collection getAttributes(Object object)方法中,您可以加载模式并从 DB 访问参数(请参阅默认实现)。每个模式都必须转换为 RequestMatcher 对象。访问属性值必须转换为 ConfigAttribute 对象的集合。作为输入对象,您将收到传入请求。您必须从 DB 填充requestMap 。请参阅此处如何配置 Spring Security 以使用您自己的 FilterInvocationSecurityMetadataSource 实现而不是默认的 ExpressionBasedFilterInvocationSecurityMetadataSource。

于 2013-01-08T14:02:08.197 回答