`
Wind_ZhongGang
  • 浏览: 261562 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring Security 3用户登录实现之十 用户切换

 
阅读更多

      部分情况下用户希望能够在不知道其它用户账号及密码的情况下,直接通过内部系统切换到另一个用户,比如一个项目经理希望在一个项目管理系统中直接切换到他的项目组下的成员账号上去,这时候就可以考虑使用Spring Security提供的Switch user功能。Switch user功能的大致流程是向服务器发送一个切换用户的请求,请求参数要有用户名称,SwitchUserFilter拦截这个请求,并从中取出要切换的用户的用户名称进行处理。下面来看看如何配置一个Switch user功能吧。

 

      1. 配置SwitchUserFilter

 

 

    <beans:bean id="switchUserFilter" class="org.springframework.security.web.authentication.switchuser.SwitchUserFilter">
        <beans:property name="userDetailsService" ref="userService"/>
        <beans:property name="usernameParameter" value="username"/>
        <beans:property name="targetUrl" value="/switch/success"/>
        <beans:property name="switchUserUrl" value="/switch"/>
        <beans:property name="exitUserUrl" value="/exit"/>
    </beans:bean>

 

     usernameParameter属性表示传递的用户名称的参数名称

     switchUserUrl属性表示SwitchUserFilter拦截的请求地址

     targetUrl属性表示切换用户成功后应该转向哪个地址

     exitUserUrl表示切换用记成功后如果想要退出应该设置的url请求地址

 

      2. 向Spring Security Filter Chain中添加SwitchUserFilter

 

      <custom-filter ref="switchUserFilter" after="FILTER_SECURITY_INTERCEPTOR"/>

 

      这里需要注意的是switchUserFilter要加入FILTER_SECURITY_INTERCEPTOR之后

 

 

分享到:
评论
2 楼 曾老师 2014-08-14  
?????
1 楼 曾老师 2014-08-13  
我有个问题,
不知道你注意过没有
我看网上也没注意过


exitUserUrl

就是在我实现了 用户切换后

admin是最初的用户,我切换回最初的用户后,

再点击
exitUserUrl

,系统会给我退出系统到登录页面

但是问题出现了,所有用户都登录不到系统,而且tomcat容易卡死

你遇到过吗

相关推荐

    SpringSecurity源码 SpringSecurity jar包 简单的Demo

    在Demo中,你可能会看到如何通过Spring Security实现用户登录、基于角色的权限控制,以及如何自定义登录失败和成功处理器。这些基本操作为理解Spring Security的全貌打下了基础。 总的来说,Spring Security通过...

    spring-security Jar包

    6. **国际化支持**:Spring Security 支持多语言环境,可以方便地切换不同语言的错误和登录消息。 7. **与Spring Framework的深度集成**:Spring Security 能无缝地与Spring MVC、Spring Boot和其他Spring组件集成...

    springSecurity3.x

    1. **身份验证**:Spring Security的核心功能之一是用户身份验证。它支持多种认证机制,如基于用户名和密码的数据库认证、LDAP认证、X.509证书认证等。你可以通过定义`AuthenticationProvider`实现自定义认证逻辑。 ...

    SpringSecurity3框架

    在Spring Security中,认证通常通过`UserDetailsService`接口实现,该接口定义了获取用户信息的方法。认证可以是基于数据库的,也可以是从其他身份验证服务(如LDAP)获取。 授权方面,Spring Security支持多种策略...

    springsecurity3离线手册

    SpringSecurity是Java领域中一款广泛使用的安全框架,主要用于实现企业级应用的安全控制,包括认证、授权、会话管理以及防止常见的攻击模式。本离线手册是SpringSecurity 3版本的详细指南,对于开发者来说,是一份...

    spring security简单示例

    Spring Security 是一个强大的且高度可定制的身份验证和访问控制框架,用于保护基于Java的应用程序。在本示例中,我们将探讨如何使用Spring Security为简单的Web应用程序添加安全功能。首先,让我们了解一下Spring ...

    spring3+security3+struts2开源权限项目

    2. **完整安全流程访问**:这指的是项目使用了Spring Security的过滤链机制,它能提供从认证到授权的全套安全服务,包括登录验证、会话管理、访问控制等,确保只有经过身份验证和授权的用户才能访问特定资源。...

    spring security 3.1.3 源码含sample源码

    通过分析这个项目,你可以了解如何将Spring Security集成到Web应用中,包括设置登录页面、配置URL保护、实现自定义认证和授权逻辑等。 **7. Spring Security的扩展性** Spring Security具有高度的可扩展性,可以...

    spring-security-oauth2.rar

    本篇将深入探讨Spring Security OAuth2如何实现基于密码模式的用户登录以及如何使用数据库和Redis进行Token的存储与管理。 首先,OAuth2是一种授权协议,它允许第三方应用在用户授权的情况下访问受保护的资源。...

    spring security 参考手册中文版

    3. Spring Security 4.2的新特性 27 3.1 Web改进 27 3.2配置改进 28 3.3杂项 28 4.样品和指南(从这里开始) 28 5. Java配置 29 5.1 Hello Web安全Java配置 29 5.1.1 AbstractSecurityWebApplicationInitializer 31 ...

    springboot+security+cas集成demo

    6. **测试与调试**:创建一些受保护的端点并进行测试,确保用户能够正确地通过CAS登录,并且在SSO环境中能够在不同应用间自由切换。 集成Spring Boot、Security和CAS的示例项目可以帮助开发者快速理解这些组件的...

    SpringSecurity-Jar包

    在这个"SpringSecurity-Jar包"中,包含了三个核心的jar文件:spring-security-config-4.2.3.RELEASE.jar、spring-security-core-4.2.3.RELEASE.jar以及spring-security-web-4.2.3.RELEASE.jar,它们各自承载了Spring...

    spring security oauth2以及jwt实现sso单点登陆的功能

    在本项目中,通过集成Spring Security OAuth2和JWT(JSON Web Token)技术,实现了这样一个功能。下面将详细介绍这两个关键组件及其在SSO中的作用。 1. Spring Security OAuth2: Spring Security 是一个全面的...

    狂神-spring-security素材.rar

    Spring Security 提供了一种安全的实现方式,使用加密技术存储用户的持久化登录信息。 7. **OAuth2与OpenID Connect集成**:Spring Security 支持OAuth2和OpenID Connect,这两种标准用于第三方应用的授权。这使得...

    spring security 安全权限管理手册

    1、搭建基本的Spring Security项目 2、使用数据库管理用户权限 3、自定义认证数据库表结构 4、自定义登录页面 5、使用数据库管理资源 6、控制用户信息 MD5加密 获取当前用户信息 7、自定义访问拒绝页面 8、动态...

    spring security helloworld

    在学习过程中,你还可以尝试添加不同角色的用户,设置更复杂的权限规则,或者将用户存储从内存切换到数据库,以进一步增强对Spring Security的理解。记住,实践是最好的老师,动手操作是掌握技术的关键。

    spring-security-3.0.3 jar包( 含源码)

    3. **CSRF防护**:Spring Security 3.0.3 包括了对跨站请求伪造(CSRF)的防护,这是一种重要的Web应用安全措施,防止恶意用户在用户浏览器上进行未经授权的操作。 4. **会话管理**:Spring Security提供了会话管理...

    spring security 4 小例子带自定义过滤器

    3. **集成Spring Security**:为了让自定义过滤器能与Spring Security的其他组件协同工作,我们可能需要设置一些属性,如`AuthenticationManager`或`SecurityContextHolder`。例如,我们的自定义过滤器在验证成功后...

    spring security(权限框架)

    Spring Security 支持多语言环境,可以轻松地切换错误消息和提示信息的语言,提供更好的用户体验。 **8. 自定义扩展** Spring Security 的核心设计允许开发者进行深度定制,你可以扩展它的核心组件,如访问决策管理...

Global site tag (gtag.js) - Google Analytics