找不到grails/login/impersonate页

piok6c0g  于 2021-07-15  发布在  Java
关注(0)|答案(1)|浏览(817)

我使用的是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

oug3syen

oug3syen1#

尝试使用:

grails.plugin.springsecurity.useSwitchUserFilter = true

不是:

grails.plugin.springsecurity.switchUser.useSwitchUserFilter = true

相关问题