热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CAS客户端与SpringSecurity集成

1、SpringSecurity测试工程搭建(1)建立Maven项目casclient_demo3,引入spring依赖和springs

1、Spring Security测试工程搭建


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



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 {@Overridepublic UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {//构建角色集合List authorities=new ArrayList();authorities.add(new SimpleGrantedAuthority("ROLE_USER"));return new User(username, "" , authorities); }
}

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


3、获取登录名


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


(1)web.xml 添加springmvc

    

springmvcorg.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:springmvc.xmlspringmvc*.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、退出登录        



修改spring-security.xml 



在页面上添加链接

退出登录

创建index2.html,将index2.html设置为可匿名访问


附录A. Spring Security 内置过滤器表

别名

Filter 类

CHANNEL_FILTER

ChannelProcessingFilter

SECURITY_CONTEXT_FILTER

SecurityContextPersistenceFilter

CONCURRENT_SESSION_FILTER

ConcurrentSessionFilter

LOGOUT_FILTER

LogoutFilter

X509_FILTER

X509AuthenticationFilter

PRE_AUTH_FILTER

AstractPreAuthenticatedProcessingFilter 的子类

CAS_FILTER

CasAuthenticationFilter

FORM_LOGIN_FILTER

UsernamePasswordAuthenticationFilter

BASIC_AUTH_FILTER

BasicAuthenticationFilter

SERVLET_API_SUPPORT_FILTER

SecurityContextHolderAwareRequestFilter

JAAS_API_SUPPORT_FILTER

JaasApiIntegrationFilter

REMEMBER_ME_FILTER

RememberMeAuthenticationFilter

ANONYMOUS_FILTER

AnonymousAuthenticationFilter

SESSION_MANAGEMENT_FILTER

SessionManagementFilter

EXCEPTION_TRANSLATION_FILTER

ExceptionTranslationFilter

FILTER_SECURITY_INTERCEPTOR

FilterSecurityInterceptor

SWITCH_USER_FILTER

SwitchUserFilter





























    
推荐阅读
author-avatar
手机用户2502860763
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有