1

我正在尝试集成 Oauth 安全性和 acl spring 安全性。

而不是低于 oauth 表达式处理程序

<sec:global-method-security pre-post-annotations="enabled" proxy-target-    class="true">
<sec:expression-handler ref="oauthExpressionHandler" />
</sec:global-method-security>

我在配置之后使用了 acl 表达式处理程序

http://krams915.blogspot.in/2011/01/spring-security-3-full-acl-tutorial_30.html中所述。

我可以在表中创建 acl 条目。但是在使用 @PostFilter 时,该方法返回的对象没有使用 acl 权限进行过滤。

有人可以帮忙吗

4

1 回答 1

1

在我的配置中,我犯了两个错误,导致@PostFilter 无效。

  1. 正如 Denim 在上述评论中所说,我通过调度程序 servlet 加载了两次组件扫描,然后我再次使用上下文加载程序侦听器加载了调度程序 servlet xml。通过这个更改,我能够检测到我声明上下文的包中的注释,即webapplication module.but 在我的服务模块中没有检测到注释。

2 我的服务层的问题是

我的服务类如下,并应用注释如下

@Service("a")
@Transactional    
Class A{

public List<Users> getUsers() {
getNames();
}

@PostFilter("hasPermission(filterObject,'edit')")
 public List<Users> getNames() {

}

注释不会被考虑,因为这两个方法都在同一个代理中可以参考

以下网址

Spring AOP 不适用于另一个方法中的方法调用

于 2016-02-26T12:34:40.740 回答