Grails 2.4.4 中的 Spring Security 插件问题

Posted

技术标签:

【中文标题】Grails 2.4.4 中的 Spring Security 插件问题【英文标题】:Spring Security Plugin Issue in Grails 2.4.4 【发布时间】:2015-03-29 11:34:56 【问题描述】:

我正在关注 Spring Security Authentication 这个教程:

http://spring.io/blog/2010/08/11/simplified-spring-security-with-grails/ 视频:https://www.youtube.com/watch?v=auwML_bsUEE

我无法按照 4:50 中的步骤进行操作。

package org.example

import grails.plugins.springsecurity.Secured

class PostController 
...
@Secured(['ROLE_USER'])
def followAjax =  ... 

@Secured(['ROLE_USER', 'IS_AUTHENTICATED_FULLY'])
def addPostAjax =  ... 

def global =  ... 

@Secured(['ROLE_USER'])
def timeline =  ... 

@Secured(['IS_AUTHENTICATED_REMEMBERED'])
def personal =  ... 

找不到导入 grails.plugins.springsecurity.Secured。

我正在使用 Grails 2.4.4 并在 BuildConfig.groovy 中编译 ':spring-security-core:2.0-RC4'。谢谢。

【问题讨论】:

你可以直接使用spring security的import org.springframework.security.access.annotation.Secured 【参考方案1】:

该教程已有 4 年多的历史了,从那时起发生了很多变化。尝试阅读插件文档 - 我确信还有其他一些类似的更改会导致问题。

导入应该是grails.plugin.springsecurity.Secured。您也可以使用 Spring Security org.springframework.security.access.annotation.Secured 注释,但插件的注释支持所​​有相同的功能和一些额外的功能,例如让你用闭包来定义规则。

你不能在定义为闭包的动作上使用任何一个注解。 Grails 2.0+ 仍然支持它们,但现在首选方法,虽然 Grails 允许您使用闭包或操作定义操作,但该插件仅支持方法。

【讨论】:

以上是关于Grails 2.4.4 中的 Spring Security 插件问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring Security 插件从 Grails 应用程序注销时获得 HTTP 状态 405

Grails springsecurity LDAP登录,如何按子组限制用户?

Grails 2.4.4 与 Java 8 的兼容性

防止 Grails 2.4.4 接受无效日期

如何在 grails 2.4.4 中使用 mongodb?

Grails 2.4.4 executeQuery() 从数据库表连接表