CAS服务器配置没有问题。
1.普通的servlet项目做CAS客户端 OK
2.不用Spring,直接使用shiro.ini配置做的CAS客户端正常。
通过Spring来配置CAS客户端就出现循环重定向的问题。Debug根本不进CasRelam
大家碰到过这种问题吗,怎么解决的啊。
CAS服务器已经修改了,通过数据库来验证用户。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.2.xsd">
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="cacheManager" ref="cacheManager" />
<property name="realm" ref="myShiroRealm" />
<property name="subjectFactory" ref="casSubjectFactory" />
</bean>
<bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
<!-- <property name="cacheManagerConfigFile" value="classpath:ehcache.xml"/> -->
</bean>
<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
<bean
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"
depends-on="lifecycleBeanPostProcessor">
<property name="proxyTargetClass" value="true" />
</bean>
<bean
class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
<property name="securityManager" ref="securityManager" />
</bean>
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl"
value="https://casserver:8443/cas/login?service=http://192.168.1.177:8080/spms" />
<property name="successUrl" value="/admin.jsp" />
<property name="unauthorizedUrl" value="/error/accessDenied.jsp" />
<property name="filters">
<util:map>
<entry key="casFilter" value-ref="casFilter" />
</util:map>
</property>
<property name="filterChainDefinitions">
<value>
/spms = casFilter
/error/* = anon
/common/* = anon
/login/**=anon
/randomcode = anon
/sys/login.do = anon
/sys/resetPwd.jsp = anon
/pwd/pwdReset.do = anon
/** = authc
</value>
</property>
</bean>
<bean id="casFilter" class="org.apache.shiro.cas.CasFilter">
<property name="failureUrl" value="/error/error.jsp" />
</bean>
<bean id="myShiroRealm" class="com.hmnet.spms.security.realm.MyCasShiroRealm">
<property name="defaultRoles" value="ROLE_USER" />
<property name="casServerUrlPrefix" value="https://casserver:8443/cas" />
<property name="casService" value="http://192.168.1.177:8080/spms" />
<property name="validationProtocol" value="SAML" />
</bean>
<bean id="casSubjectFactory" class="org.apache.shiro.cas.CasSubjectFactory" />
</beans>
相关推荐
本文将详细介绍 Spring Boot 集成 Shiro 和 CAS 的知识点,帮助读者了解 Shiro 和 CAS 的概念、使用方法,以及它们在 Spring Boot 中的集成方式。 Shiro 介绍 Shiro 是一个开源的 Java 安全框架,由 Apache 软件...
3. **Shiro集成**:接下来,我们需要将Shiro与CAS集成,使得Shiro能够理解并处理由CAS服务器发出的认证票据。这通常涉及到创建自定义的 Realm 和 Filter,比如CasRealm 和 CasFilter,它们负责解析CAS服务器返回的...
例如,当用户访问受保护的资源时,如果未通过 CAS 认证,Shiro 将重定向到 CAS 登录页面。认证成功后,CAS 会将用户重定向回原请求的 URL。 6. **处理 CAS 票据验证异常** - 在 Shiro 中,可能会遇到 CAS 票据验证...
总之,通过SpringBoot、CAS 5.2.3、Shiro和Pac4j的组合,我们可以创建一个高效、安全的SSO解决方案。这个项目提供了开箱即用的体验,只需简单配置Host即可运行,对于理解和实践SSO集成具有很高的参考价值。
通过这种方式,我们成功地将Spring Boot的便捷性、CAS的安全性、Shiro的灵活性和Pac4J的兼容性结合在一起,创建了一个高效、安全的REST认证系统。这种方法对于那些希望在不打断用户界面流的情况下实现SSO的企业级...
Spring Boot 1.5.4集成Shiro+CAS实现单点登录和权限控制是一个常见的企业级应用需求,它能够提供用户认证和授权的功能,并通过CAS(Central Authentication Service)实现跨域单点登录。以下是实现这一功能的具体...
其中shiro.loginUrl 跟 shiro.logoutUrl的前面是cas验证的地址,后面的是我们应用系统的地址,这样配置的方式是为了在访问我们的应用系统的时候,先到cas进行验证,如果验证成功了,cas将重定向到shiro.successUrl ...
### 单点登录CAS与权限管理框架Shiro集成 #### 一、概述 单点登录(Single Sign-On,简称SSO)是一种常见的身份验证技术,它允许用户通过一次登录即可访问多个应用程序和服务。这种机制提高了用户体验,同时也简化...
标题 "cas+shiro+spring实例" 涉及到的是一个集成CAS(Central Authentication Service)和Apache Shiro的Spring应用程序实例。这个实例是专为初学者设计的,旨在帮助他们理解和实现基于CAS的单点登录(Single Sign-...
SpringBoot的核心在于自动化配置,它通过`@EnableWebSecurity`注解开启了Spring Security的配置,而Shiro则可以作为Spring Security的替代品。在SpringBoot中集成Shiro,我们需要自定义一个`WebSecurityConfig`类,...
5. **处理回调和登出**:当用户访问受保护的资源时,如果未认证,Shiro会重定向到CAS服务器进行登录。登录成功后,CAS服务器会回调到应用指定的验证URL,Shiro会处理这个回调,完成用户认证过程。登出时,应用会触发...
本项目"cas-shiro单点登录"是基于Spring框架,利用Apache Shiro安全库和Jasig CAS(Central Authentication Service)服务器实现的SSO解决方案。下面将详细介绍这个项目的实施过程和涉及的关键知识点。 首先,...
3. **Shiro集成**:在SpringMVC应用中,引入Shiro依赖,并配置Shiro Realm,使其能够处理CAS服务票据。Shiro Realm将从CAS服务器获取的Ticket与本地用户信息进行比对,完成本地认证。 4. **处理登录和登出**:当...
在这个项目中,CAS、Spring MVC和Shiro的集成过程可能如下: 1. 用户尝试访问受保护的资源。 2. 应用系统检测到未登录状态,重定向用户到CAS服务器的登录页面。 3. 用户在CAS服务器上输入用户名和密码,CAS进行身份...
在Shiro-CAS集成中,它们可能涉及到Web应用的配置,如Spring MVC的配置,或者前端与后端交互的处理。 7. **源码分析**:在理解集成过程时,阅读Shiro和CAS的源码可以帮助深入理解它们的工作原理,如...
总结起来,这个"单点登录cas服务器demo及springboot客户端demo"项目提供了一个实践单点登录概念的实例,涵盖了CAS服务器的搭建、Spring Boot应用的CAS客户端集成,以及Shiro或Pac4j的使用。对于想要学习和理解SSO...
2. **配置Shiro与Spring**:通过Spring的XML配置文件,定义Shiro的各个组件,如Realm、SubjectFactory等。这样,Spring容器就能自动管理这些组件的生命周期。 #### 七、总结 Shiro框架在Web项目的安全性管理方面...
Java客户端的集成通常更加复杂,因为它可能包括Spring Security CAS或Apache Shiro CAS等库。开发者需要配置服务提供者(SP)和身份验证代理(IdP,即CAS服务器)之间的交互,包括服务URL、验证URL和证书。在Java...
总的来说,这个项目提供了一个基于Spring Boot、Shiro和Pac4j的CAS整合示例,不仅实现了基本的SSO功能,还允许对登录页面和认证方式进行自定义,以适应不同的业务场景。对于理解CAS的工作原理以及如何在实际项目中...
1. **集成方式**:CAS客户端可以是Java过滤器、Spring Security集成、Apache Shiro等,根据应用的技术栈选择合适的集成方式。 2. **配置参数**:包括CAS服务器URL、服务URL(对应应用的入口)、票证验证协议等。 3. ...