Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @PostFilter不适用于Spring@Aspect_Java_Spring Security_Spring Aop_Spring Security Acl - Fatal编程技术网

Java @PostFilter不适用于Spring@Aspect

Java @PostFilter不适用于Spring@Aspect,java,spring-security,spring-aop,spring-security-acl,Java,Spring Security,Spring Aop,Spring Security Acl,我正在尝试这样做: @组件 @面貌 类自定义方面{ @切入点(“在(@com.example.security.Check*)”内) public void classAnnotatedWithCheck(){} @切入点(“执行(公共**(…)”) public void publicMethod(){} @切入点(“publicMethod()&&classAnnotatedWithCheck()”) public void publicMethodInsideAClassMarkedWit

我正在尝试这样做:

@组件
@面貌
类自定义方面{
@切入点(“在(@com.example.security.Check*)”内)
public void classAnnotatedWithCheck(){}
@切入点(“执行(公共**(…)”)
public void publicMethod(){}
@切入点(“publicMethod()&&classAnnotatedWithCheck()”)
public void publicMethodInsideAClassMarkedWithCheck(){}
@大约(value=“publicMethodInsideAClassMarkedWithCheck()”)
公共对象执行(ProceedingJoinPoint point)抛出可丢弃{
返回executeWithFilter(点);
}
@PostFilter(value=“hasPermission(filterObject,'READ')”)
私有对象executeWithFilter(ProceedingJoinPoint点)抛出Throwable{
返回点。继续();
}
}
方面工作得很好,但最后一个方法
executeWithFilter
没有过滤。同时,如果我将
@PostFilter(value=“hasPermission(filterObject,'READ')”)
添加到一个常规服务方法中,过滤就会起作用。甚至可以在方面中使用
@PostFilter
吗?

Spring是基于AOP的

另外,从Spring AOP参考文档中:

在SpringAOP中,方面本身不能成为团队建议的目标 其他方面。类上的@Aspect注释将其标记为方面 因此,将其从自动代理中排除


应该在bean上应用安全建议,以提供
@PostFilter
方法安全性,这在方面是不可能的。简而言之,Spring security在某个方面不起作用。

谢谢您的回答!可能必须实现自定义权限检查。我只是注意到,您是故意做“word,word”的