3

我有一个使用授权前和授权后方法注释的 Spring MVC Web 应用程序。

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

我注意到有一个PermissionsEvaluator界面,但这似乎是为了一种更全局的权限方法而不是每个模块。我想可以编写一个委托给特定模块的实现PermissionsEvaluators,但这似乎需要做很多工作。

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

我可以直接从我的服务层抛出一个标准的弹簧异常吗?我应该考虑其他一些方法吗?

4

1 回答 1

4

考虑使用AccessDeniedException。当前置或后置条件评估为 false 时,Spring Security 会在内部抛出它。默认情况下,它会生成一个 403 禁止页面。

于 2013-05-27T07:43:30.443 回答