Grails Spring安全开关用户设置问题

时间:2014-02-25 17:34:03

标签: grails spring-security switch-user

我正在尝试配置Spring Security插件的SwitchUser功能而没有成功。在大多数情况下,它似乎很简单和多层次,但在获得所有代码并单击“切换”按钮后,它只是将我重定向到默认主页URL而不进行切换。

有没有人比官方Spring Security Core插件网站上已有的信息更多?我一直在Goggling并阅读与之相关的所有内容而没有找到任何原始信息 - 大多数内容都是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或controllerAnnotations(?),或者使用哪个标准来决定使用哪个。

.gsp代码:

<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>

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

2 个答案:

答案 0 :(得分:0)

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

我希望我有更好的答案。我仍然想了解更多关于SwitchUser的知识 - 比我在Google上找到的更多。

答案 1 :(得分:0)

似乎过滤器只接受具有角色ROLE_SWITCH_USER

的用户之间的切换