【发布时间】:2015-01-28 18:50:11
【问题描述】:
我正在关注tutorials 使用springsecurity 身份验证插件。我正在使用 grails 版本 2.3.8 和 spring-security-core:2.0-RC2。它按预期工作,使用 Secured 注释创建 HelloWorld 控制器:
package basicauthdemo
import grails.plugin.springsecurity.annotation.Secured
class HelloController {
@Secured(['ROLE_USER'])
def index() {
render "Hello World"
}
}
然后显示登录屏幕。
我的问题是,当我创建另一个没有 @Secured 注释的控制器时。导航到该控制器时,我仍然会看到登录屏幕。 Spring security 现在负责对我的控制器的所有访问,正如我从生成的 web.xml 中的过滤器映射中看到的那样:
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>ERROR</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
如何告诉插件允许开放访问某些控制器而不是其他控制器?我认为这将由 @Secured 注释的存在来确定,但这仅定义了具有控制器权限的角色。
【问题讨论】: