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

来源:互联网 发布:linux shell alias 编辑:程序博客网 时间:2024/06/01 07:38

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

 

      1. 配置SwitchUserFilter

 

 

Xml代码  收藏代码
  1. <beans:bean id="switchUserFilter" class="org.springframework.security.web.authentication.switchuser.SwitchUserFilter">  
  2.     <beans:property name="userDetailsService" ref="userService"/>  
  3.     <beans:property name="usernameParameter" value="username"/>  
  4.     <beans:property name="targetUrl" value="/switch/success"/>  
  5.     <beans:property name="switchUserUrl" value="/switch"/>  
  6.     <beans:property name="exitUserUrl" value="/exit"/>  
  7. </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之后

原创粉丝点击