我启用了用户切换,并对Config.groovy进行了以下更改:
grails.plugin.springsecurity.useSwitchUserFilter = true
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
'/j_spring_security_switch_user':['ROLE_SWITCH_USER', 'IS_AUTHENTICATED_FULLY' ],
'/j_spring_security_exit_user': ['permitAll']
]
在gsp上我有以下内容:
<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' />
<input type='submit' value='Switch' />
</form>
</sec:ifAllGranted>
</sec:ifNotSwitched>
当我进行切换时,我知道它有效,因为在我的日志中我得到了:
Attempt to switch to user [newusername]
switchuser.SwitchUserFilter - Could not find original user Authentication object!
switchuser.SwitchUserFilter - Switch User Token [<I see here the username for the user i switched to>]
authentication.AjaxAwareAuthenticationSuccessHandler - Using default Url: /
然后应用程序将我重定向到springsecurity.switchUser.targetUrl上的URL
到目前为止,这么好,但是我在我的应用程序上做的事情仍然看起来像原始/模仿者用户,而不是我切换到的用户
事实上我还有另一个gsp:
<sec:ifLoggedIn>
Logged in as <sec:username />
</sec:ifLoggedIn>
没有显示任何内容。 有什么想法吗?