Grails Spring安全静态规则

Tro*_*ang 4 grails spring spring-security

我希望在访问我的应用程序之前对所有用户进行身份验证。以下是Config.groovy中的设置:

grails.plugin.springsecurity.controllerAnnotations.staticRules=[
    "/**": ["ROLE_ADMIN"],
    "/login/auth": ["permitAll"]
]
Run Code Online (Sandbox Code Playgroud)

我输入“ / login / auth”:[“ permitAll”]的原因是任何用户都可以登录并进行身份验证。但是,当我访问http:// localhost:8080 / myapp /时,它将重定向到http:// localhost:8080 / myapp / login / auth并抛出错误:页面未正确重定向。您能告诉我我在这里犯了什么错误吗?

Kol*_*nij 5

首先,您必须向Spring Security说要使用哪种类型的映射。

grails.plugins.springsecurity.securityConfigType = 'InterceptUrlMap'
Run Code Online (Sandbox Code Playgroud)

第二个'permitAll'更改为'IS_AUTHENTICATED_ANONYMOUSLY' And第三,如果Spring Security发现/**他在此行下没有看到另一个。因此,您的代码必须像这样:

grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap
grails.plugins.springsecurity.interceptUrlMap = [
"/login/auth": ["permitAll"],
 "/**": ["ROLE_ADMIN"]
]
Run Code Online (Sandbox Code Playgroud)