Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用户成功打开spring security后没有更改_Spring_Grails_Spring Security_Impersonation_Switch User - Fatal编程技术网

用户成功打开spring security后没有更改

用户成功打开spring security后没有更改,spring,grails,spring-security,impersonation,switch-user,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_

我通过对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']
 ]
关于普惠制,我有以下几点:

<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: /
尝试切换到用户[newusername]
switchuser.SwitchUserFilter-找不到原始用户身份验证对象!
switchuser.SwitchUserFilter-切换用户令牌[]
authentication.AjaxAwareAuthenticationSuccessHandler-使用默认Url:/
然后应用程序将我重定向到springsecurity.switchUser.targetUrl上的URL

到目前为止还不错,但我在应用程序上所做的一切看起来仍然像是原始/模拟用户,而不是我切换到的那个

事实上,我还有另一个普惠制:

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

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

我假设
找不到原始用户身份验证对象
是解决此难题的重要线索。不是真的,这意味着尝试切换的用户尚未切换到其他用户。我查看了SwithUserFilter类,它基本上检查您在模拟新用户之前是否已经模拟了其他人。我认为问题在于我还使用了RestTokenValidationFilter,并且在成功切换用户后覆盖了身份验证