我一直在尝试将 spring-security 集成到我的一个 grails 应用程序中。如spring security教程中所述,我使用以下代码安装了插件
BuildConfig.groovy: 我添加了以下代码
repositories {
mavenRepo 'http://repo.spring.io/milestone'
}
plugins {
compile ':spring-security-core:2.0-RC2'
}
后来我清理了代码并编译它以确保下载了依赖项。我还检查了 .grails 文件夹以确保下载了依赖项。
接下来我创建了 User 和 Role 类。(注意:我将这些类分别命名为 Person 和 Authority)。
在此之后,我创建了 SecureController 并且没有添加任何安全访问注释,但我仍然无法访问安全控制器。控件直接重定向到登录控制器
问题一: 是不是使用了spring security plugin后,每个页面都需要认证?有没有办法在不登录的情况下访问页面
接下来,我将@Secured 注释添加到 SecureController。尽管 @Secured 注释存在于项目的插件文件夹中,但它根本没有被检测到。最初我以为我错过了一些东西,所以我从开始实施相同的步骤再次创建了项目。但是这次插件被检测到
问题 2: 为什么 spring-security 插件的行为如此不一致
我试图在不登录的情况下访问 SecureController,我收到以下错误。
EL1008E:(pos 0): 在“org.springframework.security.web.access.expression.WebSecurityExpressionRoot”类型的对象上找不到字段或属性“ADMIN_ROLE”
登录并尝试访问控制器后,我也遇到了同样的错误。
问题3: 是不是我遗漏了任何需要指定的依赖项。
在登录页面中,表单会导致一些操作“j_security_check”。我没有在任何控制器中注意到此操作。
问题 4: 我是否需要为此名称创建一个新操作
请帮我解决这个问题。非常感谢您的帮助。