我使用的是grails spring security core和spring security ui插件,但无论我做什么,我都无法让switch user工作,我总是得到:
错误:找不到页(404)路径:/login/impersonate
我在我的应用程序中得到了这个。groovy:
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
......
[pattern: '/login/**', access: ['permitAll']],
[pattern: '/logout/**', access: ['permitAll']],
[pattern: '/login/impersonate', access: ['permitAll']],
[pattern: '/logout/impersonate', access: ['permitAll']]
}
(非常开放的权限,我知道,但只是想让它工作。)我也尝试添加以下内容:
grails.plugin.springsecurity.interceptUrlMap = [
[pattern: '/login/impersonate', access: ['permitAll']]
]
我在application.groovy中有一套:
grails.plugin.springsecurity.switchUser.useSwitchUserFilter = true
grails.plugin.springsecurity.ui.switchUserRoleName = 'ROLE_SWITCH_USER'
我在申请表上写了这句话。yml:
grails:
plugin:
springsecurity:
switchUser:
useSwitchUserFilter: true
ui:
switchUserRoleName: 'ROLE_SWITCH_USER'
我试过用角色为\ admin和\ switch \ user的用户登录,并单击springsecurityuigui插件中的标准“以用户身份登录”。我试着去http://localhost:8080/在浏览器中登录/模拟。我尝试将此添加到页面:
<sec:ifAllGranted roles='ROLE_SWITCH_USER'>
<form action='/login/impersonate' method='POST'>
Switch to user: <input type='text' name='username'/> <br/>
<input type='submit' value='Switch'/>
</form>
</sec:ifAllGranted>
并试图以这种方式切换用户。但不管我做什么,我都得到了404页没有找到。
我试着查看spring安全核心插件的源代码,但是logincontroller.groovy没有impersonate()方法。我猜它使用了一些魔法来达到spring的switchuserfilter。我试过在那里放破发点,但似乎没有停止。
在所有其他方面,grailsspring安全插件似乎工作正常,正如预期的那样。但我被难住了。
使用grails4.0.9,org.grails。plugins:spring-security-core:4.0.3,org.grails。plugins:spring-security-ui:4.0.0.m1
1条答案
按热度按时间oug3syen1#
尝试使用:
不是: