grails - Grails Spring 开关用户

标签 grails spring-security grails-2.4

我对j_spring_security_switch_user有问题,因为我只能在具有ROLE_SWITCH_USER角色的用户之间切换。

我可以更改它,以便它可以从具有ROLE_USER角色的用户切换到具有ROLE_SWITCH_USER的用户吗?

最佳答案

我通过以下方式解决了它:

创建文件MySwichUserFilter.groovy:

class MySwichUserFilter extends SwitchUserFilter {

    protected Authentication attemptSwitchUser(HttpServletRequest request) throws AuthenticationException {

        Authentication switchTo = super.attemptSwitchUser(request);
        SecurityContextHolder.getContext().getAuthentication();

        return switchTo;
    }
}

更正resources.groovy
beans = {
    ...
    switchUserProcessingFilter(MySwichUserFilter){
        userDetailsService  = ref('userDetailsService')
        switchUserUrl       = "/j_spring_security_switch_user"
        exitUserUrl         = "/j_spring_security_exit_user"
        targetUrl           = conf.successHandler.defaultTargetUrl
    }
    ...
}

关于grails - Grails Spring 开关用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32921929/

相关文章:

grails - 多个 when/then 与 where for each other

unit-testing - 在 Grails 中测试 afterInsert

hibernate - 如何在Grails中的hasMany关系中指定查询?

file - 获取我要上传的文件的路径

Grails IntegrationSpec IllegalStateException

regex - 如何使用正则表达式突出显示搜索到的单词

java - 使用 Spring Security BCryptPasswordEncoder 散列密码时凭据错误

mysql - 未定义 PlatformTransactionManager 类型的合格 bean,仅当它不在内存中时才会发生错误

java - 预 Controller 过滤器的 ExceptionHandler (Spring Security)

grails - 如何将 Grails 2 插件资源复制到 Grails 应用程序?