我在哪里可以找到有关spring-security注释的更多信息

时间:2010-01-04 22:27:31

标签: java annotations spring-security

我目前正致力于使用spring-security 3.0保护Web应用程序。我已经解决了大部分问题,但我正在努力更好地理解我在做什么(复制和粘贴FTL)。

我看了this video,他说除了某些情况外,不应再使用@Secured了。他还展示了可以使用的注释和方法列表(大约44:50),但没有解释它们。他只是表明他们被使用了。所以我查看了文档并找到了this。所以我将所需的代码添加到我的xml文件中,然后尝试@PreAuthorize("hasAuthority('ROLE_ADMIN')")并且它不起作用。然后我意识到hasAuthority不是一种方法(谢谢你让我困惑的文档)。我将其更改为@PreAuthorize("hasRole('ROLE_ADMIN')")和VOILA,它可以正常工作。

现在,我想知道(其他为什么文档错误)我在哪里可以找到有关在演示文稿中如此精美列出的注释前类型和方法的更多信息?我试过谷歌,但也许我正在寻找错误的条款。此外,JSR250注释被认为是正确使用的,但我也没有找到相关信息。我的谷歌坏了还是我只是在错误的地方看?

5 个答案:

答案 0 :(得分:2)

基于表达式的访问控制在文档here

中有更好的解释

答案 1 :(得分:2)

正如Willie在评论中指出的那样,作为所有想要使用它的人的有效语法,授权实际上已经added。 从票中引用卢克泰勒:

  

我已经将对hasAuthority()和hasAnyAuthority()表达式的支持添加到SecurityExpressionRoot。

添加它作为答案,因为我目前的答案并不清楚,并认为它可能有助于其他人。

答案 2 :(得分:1)

此外,请确保在安全上下文中启用了预注释和后注释

<global-method-security pre-post-annotations="enabled"/>

答案 3 :(得分:0)

如果放的话,

hasAuthority会起作用 <security:http use-expressions="true" … 在您的应用程序上下文中。

答案 4 :(得分:0)

我写了一篇DZone Refcard,解释了如何在Spring Security中使用EL:

http://refcardz.dzone.com/refcardz/expression-based-authorization?oid=hom25493