cas客户端服务
cas服务端提供服务,cas客户端:通过客户端程序集成的cas客户端和cas服务端交互,cas之所以要抽出一个服务端,是为了把
公用的session,cookie都放在服务端,一些验证指令通过cas客户端--》cas服务端--》各客户端的权限管理插件(如:shrio)
shrio:
1,把用户权限信息放在shrio的securitymanager管理器中
2,根据需要增加相应的认证,角色过滤器(role落脚于角色的匹配-角色过滤器,perm落脚于资源的匹配-资源过滤器----都可以控制到按钮级别,不同的过滤器前端需要用对应不同的标签获取相应的信息)
3,认证的发起,
1调用shrio自有的接口地址,
2,用java代码编写:subject里面有登陆功能,有登陆后的session(在重写的认证接口设置),有用户名getPriciple();
cas和shrio区别分工
cas只做用户密码认证放行(集成在程序的客户端会调用cas服务进行验证)
shrio既可以做密码认证放行,也可以做权限判断
当二者结合的时候,可以分工密码认证cas来,权限判断shrio来
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="casRealm" />
<property name="subjectFactory" ref="casSubjectFactory" />
<!-- <property name="sessionManager" ref="sessionManager" /> -->
<!-- <property name="cacheManager" ref="shiroEhcacheManager" /> -->
</bean>
<bean id="casFilter" class="org.apache.shiro.cas.CasFilter">//cas拦截器----》密码认证
<property name="failureUrl"
value="http://localhost:8081/web/resources/failure.html" />
</bean>
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />//里面包含cas的本拦截服务设置----》shrio密码认证(集成cas时配置方式不同)
<!-- <property name="loginUrl"
value="http://localhost:8080/cas/login?service=http://localhost:8081/web/cas" /> -->
<property name="loginUrl"
value="http://localhost:8080/cas/login?a=2&service=http://localhost:8081/web/cas" >
</property>
<property name="successUrl"
value="http://localhost:8081/web/siteindex.do" />
<property name="filters">
<map>
<!-- <entry key="authc" value-ref="formAuthenticationFilter" /> -->
<entry key="cas" value-ref="casFilter" /> //////////shrio中集成本服务cas的拦截器
<entry key="logout" value-ref="logoutFilter" />
<entry key="osLogin" value-ref="osLogin" />
<entry key="oiLogin" value-ref="oiLogin" />
<entry key="csLogin" value-ref="csLogin" />
</map>
</property>
<!-- 重要:必须加上/cas = cas来告诉/cas用casFilter来处理 -->
<!-- 重要:logout为登出filter /myaccount/getFirmCenter =csLogin-->
<property name="filterChainDefinitions">---》权限过滤(动态的时候配置不同)
<value>
/information/news/getNewsInfoById==anon
/information/news/getInfoNewsData==anon
</value>
</property>
</bean>
<bean id="casRealm" class="org.apache.shiro.cas.CasRealm">//本服务用的cas拦截器
<property name="defaultRoles" value="ROLE_USER" />
<!-- 重要:这个是用来获取ticket的casServerURL的前缀,所以不能有login -->
<property name="casServerUrlPrefix" value="http://localhost:8080/cas/" />
<!--客户端的回调地址设置,必须和上面的shiro-cas过滤器拦截的地址一致 -->
<property name="casService" value="http://localhost:8081/web/cas" />
</bean>
<bean id="casSubjectFactory" class="org.apache.shiro.cas.CasSubjectFactory" />//把shrio的subject封装称cas的subject
<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
相关推荐
CAS(Central Authentication Service)和Apache Shiro都是在Java领域中广泛使用的安全框架,它们各自有着不同的侧重点。CAS主要用于集中式身份验证,而Shiro则更专注于应用内部的安全管理,如授权、会话管理和安全...
将CAS的认证结果与Shiro的授权结合,通常在CAS验证成功后,会将用户的认证信息(如用户名、票证)传递给Shiro,Shiro再通过Realm从数据源中获取用户的角色和权限信息。这样,Shiro就可以根据这些信息进行权限控制,...
标题 "cas+shiro+spring实例" 涉及到的是一个集成CAS(Central Authentication Service)和Apache Shiro的Spring应用程序实例。这个实例是专为初学者设计的,旨在帮助他们理解和实现基于CAS的单点登录(Single Sign-...
3. **Shiro集成**:接下来,我们需要将Shiro与CAS集成,使得Shiro能够理解并处理由CAS服务器发出的认证票据。这通常涉及到创建自定义的 Realm 和 Filter,比如CasRealm 和 CasFilter,它们负责解析CAS服务器返回的...
2. 配置SSO客户端:在项目中集成Shiro框架,配置Shiro的CasFilter,指定CAS服务器的地址和相关参数。 3. 配置HTTPS:为服务器申请并配置SSL证书,确保整个SSO过程在安全的HTTPS环境下进行。 4. 测试与调试:验证用户...
- the cas-shiro-demo-app module is a demo web application which uses the CAS Shiro support library with protected area requiring CAS authentication : http://shiro.apache.org/cas.html - the cas-shiro-...
这个配置文件将包含关于CAS服务器的URL、服务验证URL等信息,以及Shiro的 Realm 设置,用于定义如何与CAS服务器交互获取和验证用户凭证。 接下来,配置Shiro的过滤器 `shiroFilter`,它是基于Spring的代理过滤器 `...
在本项目中,Pac4j作为Shiro的插件,帮助Shiro与CAS5.x进行通信,处理CAS的登录票证(TGT,Ticket Granting Ticket)和服务票证(ST,Service Ticket)。 实现流程如下: 1. 用户访问SpringBoot应用,由于未登录,...
# sso-shiro-cas spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次 ## 系统模块说明 1. cas: 单点登录模块,这里直接拿的是cas的项目改了点样式而已 2. doc: 文档目录,里面有数据库...
这篇文章将详细讲解如何将CAS(Central Authentication Service)、Shiro(Apache Shiro)和Ehcache集成到Spring应用程序中,提供一个完整的实现流程。这个集成方案主要用于实现统一的身份验证和授权,提升系统的...
由于CAS已经处理了用户的登录和登出,我们需要确保Shiro与CAS同步会话信息。这可以通过监听CAS的登录和登出事件来实现,当用户登录或登出时,更新Shiro的会话状态。 4. 授权策略 Shiro的授权机制允许我们基于角色和...
1.如果客户端项目采用shiro控制权限 则需要将cas-client 认证过滤交给shiro来管理 2.从shiro下载相应版本的shiro-cas-xxxx. Jar或者在maven里直接添加
在本文中,我们将讨论如何将 Apache Shiro 与 CAS 3.5 版本进行整合,以实现统一的登录认证。 整合 Shiro 和 CAS 的主要目标是利用 CAS 的身份验证服务,避免在每个应用中重复实现登录逻辑。以下是一个简化的整合...
在本项目中,pac4j作为Shiro的扩展,用于与CAS服务器进行通信,实现用户认证的交互。 4. **CAS (Central Authentication Service)**: CAS是一个开源的身份验证服务,它为多个应用提供单一登录功能。在这个项目中...
前后端分离模式下的cas + shiro + pac4j,cas作为认证中心,子应用采用shiro鉴权,通过pac4j与cas交互,返回jwt token,完整项目,基于springboot框架
然后clean install tomcat7:run 就能跑起来,注意要修改node1和node2里的shiro.properties配置文件,要配置登录成功成功返回的路径 我的访问的分别是: 服务端: http://localhost:8050/cas-server 客户端:...
CAS 5.3版本引入了更多的改进和增强,包括支持RESTful API,使得与CAS交互更加灵活。 Shiro是Apache提供的一款轻量级的安全框架,用于实现身份认证、授权和会话管理。在Spring Boot应用中,Shiro可以轻松地集成并...
### 单点登录CAS与权限管理框架Shiro集成 #### 一、概述 单点登录(Single Sign-On,简称SSO)是一种常见的身份验证技术,它允许用户通过一次登录即可访问多个应用程序和服务。这种机制提高了用户体验,同时也简化...
本项目"cas-shiro单点登录"是基于Spring框架,利用Apache Shiro安全库和Jasig CAS(Central Authentication Service)服务器实现的SSO解决方案。下面将详细介绍这个项目的实施过程和涉及的关键知识点。 首先,...
Apache Shiro 和 CAS(Central Authentication Service)是两个在IT安全领域广泛应用的开源框架。Shiro 是一个强大且易用的 Java 安全框架,提供了认证、授权、加密和会话管理功能,可以非常轻松地开发出足够安全的...