Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.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 spring security中复杂授权的处理_Java_Spring Security - Fatal编程技术网

Java spring security中复杂授权的处理

Java spring security中复杂授权的处理,java,spring-security,Java,Spring Security,我有一个SpringMVCWeb应用程序,它使用预授权和后授权方法注释 我的一个服务中有一个特定的方法,需要应用更复杂的授权逻辑 我注意到有一个PermissionsEvaluator接口,但它似乎是为了更全局地处理权限而不是每个模块。我认为可以编写一个实现,将其委托给特定于模块的PermissionsEvaluators,但这似乎需要大量的工作 此外,我会加倍努力。授权决策基于实际处理过程中的中间状态。如果我使用PreAuthorize机制,我将生成该状态一次用于授权,然后再次生成“用于真实”

我有一个SpringMVCWeb应用程序,它使用预授权和后授权方法注释

我的一个服务中有一个特定的方法,需要应用更复杂的授权逻辑

我注意到有一个
PermissionsEvaluator
接口,但它似乎是为了更全局地处理权限而不是每个模块。我认为可以编写一个实现,将其委托给特定于模块的
PermissionsEvaluators
,但这似乎需要大量的工作

此外,我会加倍努力。授权决策基于实际处理过程中的中间状态。如果我使用
PreAuthorize
机制,我将生成该状态一次用于授权,然后再次生成“用于真实”

是否有一个标准的spring异常可以直接从服务层抛出?还有其他的方法我应该考虑吗?

考虑使用。当前置或后置条件的计算结果为false时,Spring Security会在内部抛出它。默认情况下,它生成403禁止页面