美好的一天,
我正在使用Grails中的应用程序,我正在尝试使用spring security core和ui。具体来说,我使用了s2ui-override来覆盖用户,角色,身份验证和布局。
一般来说它似乎有效。我现在遇到了一个非常奇怪的问题,我似乎无法修复它。
当我点击主页上的登录链接时,我会按预期发送到s2ui登录页面。填写已知凭据并单击登录按钮后,我收到“抱歉,您无权查看此页面”消息;同时,Firefox地址面板中显示的URL是
http://localhost:8080/galaxy/plugins/jquery-ui-1.10.3/jquery-ui/themes/ui-lightness/jquery-ui-1.10.3.custom.css
我之前有过这种行为但是(我以为我已经通过)将以下两行添加到我的Config.groovy中的grails.plugin.springsecurity.controllerAnnotations.staticRules中来纠正它
'/login/**': ['permitAll'],
'/logout/**': ['permitAll']
这个奇怪的部分是,如果我在浏览器中单击回来,我将返回s2ui登录面板(字段为空);如果我再次填写(同一用户)并单击登录按钮,这次我会按预期重定向到我的主页。
就我所见,这种行为是一致的,也就是说,它每次都会第二次工作。
答案 0 :(得分:5)
我相当肯定这是因为重定向到的资产被Spring Security插件阻止,提示登录&返回请求资产。
仔细检查,grails.plugin.springsecurity.controllerAnnotations.staticRules,包含一个匹配正在传递/请求的资产的正确条目。
Config.groovy:
grails.plugin.springsecurity.controllerAnnotations.staticRules =[
'/plugins/**':['permitAll']
导致这种情况的根本原因可能是Spring Security UI插件没有(现在?)使用现在默认的Asset Pipeline。