【发布时间】:2015-09-12 14:26:41
【问题描述】:
作为 Spring 安全框架的新手,我想知道为什么我们将 @PreAuthorize("permitAll()") 与方法一起使用?文档说 permitAll 总是评估为真。 (http://docs.spring.io/spring-security/site/docs/3.0.x/reference/el-access.html)
另外,我有以下代码更改。开发人员从 permitAll() 更改为特定权限检查。这里的含义是什么?由于我不太确定 permitAll() 的工作原理,因此我无法判断代码更改背后的逻辑。在我看来,开发人员添加了特定的权限检查,并且他将 null 作为身份验证对象传递。有人可以解释显式传递 null 作为身份验证对象有什么影响吗?如果未经身份验证的用户对目标对象具有此特定的“LUONTI”权限-“opetussuunnitelma”,他们是否可以访问?
- @PreAuthorize("permitAll()")
+ @PreAuthorize("hasPermission(null, 'opetussuunnitelma', 'LUONTI')")
OpetussuunnitelmaDto addOpetussuunnitelma(OpetussuunnitelmaDto opetussuunnitelmaDto);
谢谢。非常感谢任何帮助!
【问题讨论】:
标签: java security spring-security annotations spring-annotations