(二)系统开发单点登录解决方案-CAS整合springSecurity项目实战

咱们接着上一篇的入门接着做

4. CAS 客户端与 SpringSecurity 集成 

4.1 Spring Security 测试工程搭建 

(1)建立 Maven 项目 casclient_demo3 ,引入 spring 依赖和 spring secrity 相关依赖 ,tomcat 端口设置为 9003 
(2)建立 web.xml ,添加过滤器等配置 
(3)创建配置文件 spring-security.xml  

(4)添加 html 页面 

(二)系统开发单点登录解决方案-CAS整合springSecurity项目实战_第1张图片

4.2 Spring Security 与 CAS 集成

(1)引入依赖  

   
    org.springframework.security   
    spring-security-cas   
    4.1.0.RELEASE   
      
   
        org.jasig.cas.client   
        cas-client-core   
        3.3.3   
           
               
                org.slf4j   
                log4j-over-slf4j   
               
           
  

(2)修改 spring-security.xml (重点配置文件)




	
	
	
		
		
		
		
		
		
	

	
	
		
		
		
	
	
		
		
	
	


	
	
		
	
	
	
		
		
	
	
	
		
			
				
			
		
		
		
		
			
				
			
		
		
	
	
	

	


	
	
	
	
		
		
			
		
		
	
	

(3)创建 UserDetailsServiceImpl (认证类)这个类的主要作用是在登陆后得到用户名,可以根据用户名查询角色或执行一些逻辑。 

public class UserDetailServiceImpl implements UserDetailsService { 
 @Override 
 public UserDetails loadUserByUsername(String username) throws 
UsernameNotFoundException { 
  //构建角色集合 
  List authorities=new ArrayList(); 
  authorities.add(new SimpleGrantedAuthority("ROLE_USER")); 
  return new User(username, ""  , authorities);   
 } 
} 

4.3 获取登录名 

我们在处理后端逻辑需要获得登录名,那么如何获取单点登录的用户名呢? 其实和之前 获得用户名的方式是完全相同的,我们下面来做个测试。 

(1)web.xml 添加 springmvc

  
   springmvc 
  
 org.springframework.web.servlet.DispatcherServlet 
    
    
    contextConfigLocation 
    classpath:springmvc.xml 
    
   
   
   
   springmvc 
   *.do 
   

(2)创建 springmvc.xml 配置文件





	

	

(3)创建 UserController   

@RestController 
public class UserController { 
 @RequestMapping("/findLoginUser") 
 public void  findLoginUser(){ 
  String name = 
SecurityContextHolder.getContext().getAuthentication().getName(); 
  System.out.println(name);   
 }  
} 
地址栏输入 http://localhost:9003/findLoginUser.do 即可在控制台看到输出的登录名。 

4.4 退出登录 

修改 spring-security.xml   
   
           
           
               
           
           
 
在页面上添加链接 

退出登录 
创建 index2.html,将 index2.html 设置为可匿名访问 

 

这样就和安全框架Security整合使用完成了,接下来就测试步骤了

---------------------------------------------------------------------

详细的CAS服务端配置在(一)系统开发单点登录解决方案-CAS快速入门

如需要完整代码可以上GitHub下载:点击跳转下载

如有错误之处欢迎之处

你可能感兴趣的:((二)系统开发单点登录解决方案-CAS整合springSecurity项目实战)