Spring Security 多页面登录配置教程

SHOP++采用了著名的Spring Security框架技术作为站点权限的认证管理,下面就简要讲解一下多页面登录的配置方式。 
(注意:本教程基于spring-security2.0.5版本,其它版本配置方式可能有所区别) 

对于Spring-Security的基本配置这里就不作详细介绍了,大家可以参考一下SHOP++源代码。现在网上流传的spring-security配置教程大多都是基于单一登陆模式进行讲解,这与国内普遍应用并不相符,现在国内流行的商城系统、CMS系统、论坛系统基本上都是采用前台与后台分开的登录模式。下面为Spring-security多登录页面模式的配置: 

一、配置两个AuthenticationProcessingFilter实例,分别设置两个不同的filterProcessedUrl来处理前后台的请求,这里就完成了登录的成功跳转、失败跳转的配置,实例代码如下: 

 
 
 
 
  
 
 
  
  
  
  
  
  
 

  
 
  
  
  
  
  
  
 


二、对于前后台的注销处理,需要配置两个AuthenticationProcessingFilter实例,分别设置两个不同的filterProcessesUrl来处理前后台的请求,这里就完成了注销后跳转的配置,实例代码如下: 

 
 
 

 
  
  
  
   
    
   
  
  
 

   
 
  
  
  
   
    
   
  
  
 


三、最后我们只需要配置未登录用户的跳转URL即可,这里我们需重新配置authenticationProcessingFilterEntryPoint,让所有未登录请求都统一跳转到一个Action(或JSP)上,再由此Action根据SavedRequest对象跳转到相应的登录URL(SavedRequest对象是spring-security保存登陆请求信息的对象,可使用getSession("SPRING_SECURITY_SAVED_REQUEST_KEY")方式获取)。 

 
 

  
  
  
  
  
 

 
 
  
 

Action处理代码: 

public String login() { 
 // 从Session中获取SavedRequest对象,并根据请求URL判断是否为后台请求,再跳转到相应登录URL 
 SavedRequest savedRequest = (SavedRequest) getSession("SPRING_SECURITY_SAVED_REQUEST_KEY"); 
 if (savedRequest != null && savedRequest.getRequestUrl().indexOf("/admin/") >= 0) { 
  // 跳转到后台登录页面 
  return "adminLoginAction"; 
 } else { 
  // 跳转到前台登录页面 
  return "shopLoginAction"; 
 } 

你可能感兴趣的:(spring)