首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grails 3 Spring安全插件

Grails 3 Spring安全插件
EN

Stack Overflow用户
提问于 2016-03-28 12:55:44
回答 1查看 164关注 0票数 0

我使用Grails 3和Security插件进行身份验证。

当我在浏览器中手动单击以下url时:

http://localhost:8080/cool-0.1/

我得到了登录页面,我可以成功地进行身份验证,推断我正确地输入了用户名/密码组合。

问题:

如果我使用原始链接导航到我的页面,而不使用正斜杠(IE:http://localhost:8080/cool-0.1而不是http://localhost:8080/cool-0.1/ ),那么我完全绕过安全性,并且能够在不进行身份验证的情况下看到主页。(是的,我清除缓存,关闭所有窗口,等等)

我的url映射包含以下代码:

代码语言:javascript
复制
"/"(controller: "home", action: "index")

我的spring安全groovy文件包含以下代码:

代码语言:javascript
复制
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
    [pattern: '/login/**', access: ['permitAll']],
    [pattern: '/error', access: ['permitAll']],
    [pattern: '/**', access: 'isAuthenticated()']
]
grails.plugin.springsecurity.filterChain.chainMap = [
    [pattern: '/assets/**', filters: 'none'],
    [pattern: '/**/js/**', filters: 'none'],
    [pattern: '/**/css/**', filters: 'none'],
    [pattern: '/**/images/**', filters: 'none'],
    [pattern: '/**/favicon.ico', filters: 'none'],
    [pattern: '/**', filters: 'JOINED_FILTERS']
]

我看不出我在这里错过了什么。为什么这两种情况会引起问题?Security 3的文档没有提到任何有用的解决方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-28 15:42:45

解决方案是使用**模式:

代码语言:javascript
复制
[pattern: '**', access: 'isAuthenticated()'],

所提供的文档表明,/**和**的使用是相同的,但是,通过使用这两种方法进行实验,显然并非如此。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36262819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档