Grails Spring安全交换机用户设置问题

Grails Spring安全交换机用户设置问题,grails,spring-security,switch-user,Grails,Spring Security,Switch User,我试图配置Spring安全插件的SwitchUser功能,但没有成功。在大多数情况下,它看起来很简单,但在完成所有代码并单击“切换”按钮后,它只是将我重定向到默认的主url,而不进行切换 是否有人拥有比官方Spring Security核心插件网站上已有的更多的信息?我一直目不转睛地看着和它有关的所有东西,没有找到任何原始信息——大多数东西都是Beckwith和Talbott原始文档的副本 以下是我的应用程序的代码: Config.groovy grails.plugins.springsecu

我试图配置Spring安全插件的SwitchUser功能,但没有成功。在大多数情况下,它看起来很简单,但在完成所有代码并单击“切换”按钮后,它只是将我重定向到默认的主url,而不进行切换

是否有人拥有比官方Spring Security核心插件网站上已有的更多的信息?我一直目不转睛地看着和它有关的所有东西,没有找到任何原始信息——大多数东西都是Beckwith和Talbott原始文档的副本

以下是我的应用程序的代码:

Config.groovy

grails.plugins.springsecurity.useSwitchUserFilter = true

grails.plugins.springsecurity.interceptUrlMap = [
    '/j_spring_security_switch_user': ['ROLE_SWITCH_USER', 'isFullyAuthenticated()'],
    '/j_spring_security_exit_user': ['permitAll'],
]
我不确定是否应该使用interceptUrlMap或ControllerNotations(?),或者什么标准将决定使用哪一种

普惠制代码:

<sec:ifLoggedIn>
    Logged in as <sec:username/>
</sec:ifLoggedIn>

<sec:ifSwitched> 
    <a href='${request.contextPath}/j_spring_security_exit_user'> 
        Resume as <sec:switchedUserOriginalUsername/> 
    </a> 
</sec:ifSwitched>

<sec:ifNotSwitched> 
    <sec:ifAllGranted roles='ROLE_SWITCH_USER'>

        <form action='${request.contextPath}/j_spring_security_switch_user' method='POST'> 
            Switch to user: <input type='text' name='j_username'/><br/> 
            <input type='submit' value='Switch'/> 
        </form>

    </sec:ifAllGranted> 
</sec:ifNotSwitched>

登录为
切换到用户:

我不知道有任何其他代码或设置涉及。如果您需要更多信息,请告诉我。

事实证明,SwitchUser的所有代码都正确实现了。尽管SwitchUser的行为仍然不一致,但问题不在于问题中包含的代码。我们在Grails中实现角色时遇到了问题


我希望我有一个更好的答案。我仍然想知道更多关于SwitchUser的信息——比我在谷歌上发现的更多。

过滤器似乎只接受在角色为role\u SWITCH\u USER的用户之间切换

您是否在j\u spring\u security\u SWITCH\u用户操作中发送用户名?