我正在尝试配置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>
我不知道涉及任何其他代码或设置。如果您需要更多信息,请告诉我。
答案 0 :(得分:0)
事实证明,SwitchUser的所有代码都已正确实现。尽管SwitchUser仍然不能保持一致,但问题不在于问题中包含的代码。我们在Grails中实现角色时遇到了问题。
我希望我有更好的答案。我仍然想了解更多关于SwitchUser的知识 - 比我在Google上找到的更多。
答案 1 :(得分:0)
似乎过滤器只接受具有角色ROLE_SWITCH_USER
的用户之间的切换