Zac*_*ack 6 java security spring spring-security spring-annotations
我对为什么有人会使用@PreAuthorize("denyAll")一种方法感到有些困惑。根据 spring 安全文档,它始终评估为 false。
如果我们不打算允许访问特定的方法,那么保留这样的方法又有什么意义呢?为什么不注释掉呢?还是仍然可以从同一个类中访问它?
我试图了解在什么情况下会出现这样的要求。
我发现一般否认一切的一个小澄清是
@DenyAll 注解可用于限制任何人(无论是否登录)对业务接口的访问。该方法仍然可以从 bean 类本身调用。
所以要点是它可以用于因某种原因公开或已公开的方法(也许它实现了一个接口),但永远不应该从外部直接调用。但是,可以从内部(在类内)调用它们。
链接在这里
我可以给你举一个真实的例子(这与我的工作非常相关)。我们有 2 个具有相同代码库的业务部门。现在,在一个单元中,有一项功能,一些移动经销商可以直接调用一项服务,直接向运营商端取消凭证,但在另一个单元中,由于某些业务规则,我们需要阻止此功能。由于我们在两个系统中使用相同的接口,因此在一个系统中我们使用denyall阻止其使用
希望这能给您一个清晰的想法。
| 归档时间: |
|
| 查看次数: |
2601 次 |
| 最近记录: |