在Spring Security 3.0.2中从DB加载拦截URL

erk*_*rko 5 java spring spring-security

我正在创建使用Spring Security的spring 3项目.

这是我当前上下文安全文件的一部分:

<http auto-config="true" use-expressions="true" >
    <intercept-url pattern="/login.htm" access="permitAll"/>
    <intercept-url pattern="/admin/*" access="hasRole('ROLE_ADMIN') and fullyAuthenticated"/>
    <intercept-url pattern="/hello*" access="hasRole('ROLE_ANONYMOUS')"/>
Run Code Online (Sandbox Code Playgroud)

所有这个url我想从DB(从一些DAO)加载.即我想动态检查任何网址的访问权限

我怎样才能以正确的方式做到这一点.

Ste*_*n C 2

您可以使用域对象安全性 (ACL)来完成此操作。

或者您可以实现AbstractSecurityInterceptor.

或者你可以用临时代码来完成;AuthenticationException即在控制器内的某个位置实施访问检查,如果请求者没有所需的权限,则抛出异常。

所有这些最终都会由 SpringSecurity 过滤器捕获AuthenticationException并采取适当的操作;例如,重定向到登录页面,或返回“访问被拒绝”状态的响应。