用户成功切换弹簧安全后无需更改

时间:2016-01-13 20:20:10

标签: spring grails spring-security impersonation switch-user

我启用了用户切换,并对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>

没有显示任何内容。 有什么想法吗?

0 个答案:

没有答案