`

cas shrio 不同系统单点登陆

    博客分类:
  • cas
 
阅读更多
不同系统使用不同的登陆名和账号,在做cas中心验证 使用数据库验证就比较纠结,因为登录名和密码两边不一样,后来请教大神,两个系统使用相同的登录名,密码可以不一样,然后在cas的
验证db 设置两个系统的数据源只要一个验证通过就把用户信息放到seession,完成登陆。

参考:https://github.com/coder-huang/sso-shiro-cas

deployerConfigContext.xml

     <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />
     <entry key-ref="primaryAuthenticationHandler1" value-ref="primaryPrincipalResolver1" />

   <!-- 通过数据库验证身份, hr 人事系统的登陆 -->
<bean id="primaryAuthenticationHandler"
      class="com.distinct.cas.jdbc.QueryDatabaseAuthenticationHandler"
      p:dataSource-ref="dataSource"
      p:passwordEncoder-ref="passwordEncoder"
      p:sql="select usr_pwd from users where Usr_LoginID=?" />
   

<!-- 通过数据库验证身份,培训  系统的登陆 -->
<bean id="primaryAuthenticationHandler1"
      class="com.distinct.cas.jdbc.QueryDatabaseAuthenticationHandler"
      p:dataSource-ref="dataSource1"
      p:passwordEncoder-ref="passwordEncoder"
      p:sql="select usr_pwd from users where Usr_LoginID=? " />
     


     <!-- 设置数据源hr -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  <property name="url" value="jdbc:mysql://127:3306/db_hr?useUnicode=true&amp;characterEncoding=utf8"></property>
  <property name="username" value="db_hr_user"></property>
  <property name="password" value="123456"></property> 
    </bean>
   
   
        <!-- 设置数据源traning -->
<bean id="dataSource1" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  <property name="url" value="jdbc:mysql://128:3306/db_training?useUnicode=true&amp;characterEncoding=utf8"></property>
  <property name="username" value="db_trainning"></property>
  <property name="password" value="123456"></property> 
    </bean>


UserRealm.java

/**
* 1、CAS认证 ,验证用户身份,培训系统 和 hr 系统采用相同的登录名,进行关联
* 2、将用户基本信息设置到会话中
*/
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) {

AuthenticationInfo authc = super.doGetAuthenticationInfo(token);
String account = (String) authc.getPrincipals().getPrimaryPrincipal();

User user = this.loginDao.getUser(account);
if(user!=null){
List<UserResource> userResources=this.loginDao.getAllMenusByUser(user);
SecurityUtils.getSubject().getSession().setAttribute(Constants.USER_RESOURCE, userResources);
}
SecurityUtils.getSubject().getSession().setAttribute(Constants.SESSION_USER, user);

return authc;
}
   
分享到:
评论

相关推荐

    shiro+cas单点登录技术分析

    Shiro与CAS结合使用,可以实现分布式系统中的单点登录功能。单点登录(SSO)是一种用户登录多个应用系统时,只需要登录一次就可以访问所有相互信任的应用系统的认证过程。 在单点登录系统中,TGT(Ticket Granting ...

    springmvc+spring+shiro+cas单点登录实例

    spring+springmvc+shiro+cas单点登录实例 springmvc+spring+shiro+cas单点登录实例 加入了登录验证码认证,修改了下首页样式,不过样式没有弄好,很丑的,有空自己再弄下 说明:cas-server是单点登录服务端,用的是...

    cas结合 springmvc shiro 单点登录

    在IT行业中,单点登录(Single Sign-On, SSO)是一种常见的身份验证机制,它允许用户在一个系统上登录后,无需再次认证即可访问其他多个相互信任的系统。本项目是关于如何将CAS(Central Authentication Service)与...

    单点登录sso-shiro-cas-maven

    spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次 ## 系统模块说明 1. cas: 单点登录模块,这里直接拿的是cas的项目改了点样式而已 2. doc: 文档目录,里面有数据库生成语句,采用的...

    cas-shiro-https单点登录实现

    单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。在这个场景中,我们关注的是`cas-shiro-https`的实现,它结合了CAS(Central ...

    cas-shiro单点登录

    本项目"cas-shiro单点登录"是基于Spring框架,利用Apache Shiro安全库和Jasig CAS(Central Authentication Service)服务器实现的SSO解决方案。下面将详细介绍这个项目的实施过程和涉及的关键知识点。 首先,...

    shiro+cas实现单点登录 示例代码,送源码分析url

    shiro+cas实现单点登录 示例代码,送源码分析url:http://note.youdao.com/noteshare?id=a83380ee8fc6913162042e865689844e&sub=CD905CCCE4134A159326DC2DFC1AF268

    单点登录CAS与权限管理框架Shiro集成

    ### 单点登录CAS与权限管理框架Shiro集成 #### 一、概述 单点登录(Single Sign-On,简称SSO)是一种常见的身份验证技术,它允许用户通过一次登录即可访问多个应用程序和服务。这种机制提高了用户体验,同时也简化...

    spring boot 1.5.4 集成shiro+cas,实现单点登录和权限控制

    "spring boot 1.5.4 集成shiro+cas实现单点登录和权限控制" Spring Boot 1.5.4 集成 Shiro+Cas 实现单点登录和权限控制是指在 Spring Boot 应用程序中使用 Shiro 框架和 Cas 服务器来实现单点登录和权限控制的功能...

    基于springboot,cas5.3,shiro,pac4j,rest接口获取ticket不再跳转cas server登录页

    CAS则是一种开放源码的单点登录(Single Sign-On, SSO)协议,它允许用户通过单一登录凭证访问多个应用,而无需反复输入用户名和密码。CAS 5.3版本引入了更多的改进和增强,包括支持RESTful API,使得与CAS交互更加...

    cas.rar_67194com_67194。com_CAS_cas单点demo_shiro 单点登录

    "cas单点demo"和"shiro_单点登录"则明确表示这是一个关于CAS和Shiro单点登录的示例项目。 总的来说,这个项目展示了如何利用CAS的单点登录功能,结合Spring MVC的控制能力以及Shiro的权限管理,实现一个全面的身份...

    cas+shiro+spring实例

    这个实例是专为初学者设计的,旨在帮助他们理解和实现基于CAS的单点登录(Single Sign-On, SSO)系统,同时结合Shiro进行权限管理和认证。下面我们将详细探讨这些技术以及它们如何协同工作。 **CAS (Central ...

    cas +shiro集成

    CAS是一个开源的单点登录(Single Sign-On,SSO)协议实现,它允许用户通过一个认证服务器进行一次登录,然后就能访问所有支持CAS的系统,无需再次输入凭证。这大大提升了用户体验并简化了身份验证的管理。 Shiro是...

    spring boot 1.5.4 集成shiro+cas,实现单点登录和权限控制.docx

    Spring Boot 1.5.4集成Shiro+CAS实现单点登录和权限控制是一个常见的企业级应用需求,它能够提供用户认证和授权的功能,并通过CAS(Central Authentication Service)实现跨域单点登录。以下是实现这一功能的具体...

    cas.zip_cas 结合 springmvc shiro 做项目单点认证

    在IT领域,单点登录(Single Sign-On,简称SSO)是一种身份验证机制,它允许用户在一个应用系统中登录后,无需再次输入凭证即可访问其他相互信任的应用系统。本项目结合了CAS(Central Authentication Service)、...

    基于Cas的单点登录实现

    `cas-shiro-demo-app` 是一个包含CAS和Shiro整合的示例应用,用于演示如何在实际项目中实现单点登录。这个示例可能包含以下组件: 1. **CAS服务器**:部署并配置CAS服务器,处理用户登录和票证验证。 2. **应用...

    springboot+cas5.x+shiro+pac4j实现sso集成

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。本项目基于SpringBoot、CAS5.x、Shiro和Pac4j实现了SSO集成,下面将详细阐述这些技术...

    springboot+cas5.2.3+shiro+pac4j实现sso集成2

    CAS(Central Authentication Service)是一个开源的身份验证服务,它为多个应用系统提供统一的登录界面。CAS 5.2.3是最新的稳定版本,支持多种协议如CAS、OAuth、OpenID Connect等。在这个项目中,CAS服务器负责...

    单点登陆(sso+shiro+cas)

    总之,结合Apache Shiro和CAS可以在Spring环境下实现高效、安全的单点登录解决方案。这一方案既满足了用户便捷的登录体验,又简化了系统管理员对多个应用的权限管理。通过细致的配置和测试,开发者可以构建出稳定...

    Shiro和cas部分整合

    Apache Shiro 和 CAS 整合是为了解决Java应用程序中的身份验证和权限管理问题,同时实现单点登录(Single Sign-On, SSO)功能。Apache Shiro 是一个轻量级的安全框架,它提供了用户认证、授权和会话管理等功能,而...

Global site tag (gtag.js) - Google Analytics