`
nvry
  • 浏览: 320442 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

单点登录cas与权限管理框架shiro集成-spring项目方式 .

    博客分类:
  • Java
 
阅读更多

       之前那篇文章介绍了普通web项目中单点登录cas与权限管理框架shiro集成方式,这里说下spring项目中的集成方式,首先还是配置一个filter

<filter>
	    <filter-name>shiroFilter</filter-name>
	    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	    <init-param>
	        <param-name>targetFilterLifecycle</param-name>
	        <param-value>true</param-value>
	    </init-param>
	</filter>
	
	<filter-mapping>
	    <filter-name>shiroFilter</filter-name>
	    <url-pattern>/*</url-pattern>
	</filter-mapping>

 

       然后就是shiro的spring bean配置,其实就是把之前的shiro.ini的东西配成spring的bean,shiro-config.xml文件如下:

<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.0.xsd
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/util
     http://www.springframework.org/schema/util/spring-util-3.0.xsd"
	default-lazy-init="true">
	
	<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
    	<property name="securityManager" ref="securityManager"/>
    	<!-- 设定角色的登录链接,这里为cas登录页面的链接可配置回调地址  -->
    	<property name="loginUrl" value="https://www.cas.com/login?service=http://www.example.com/shiro-cas" />
	    
	    <property name="filters">
	        <util:map>
	        	<!-- 添加casFilter到shiroFilter -->
	            <entry key="casFilter" value-ref="casFilter"/>
	        </util:map>
	    </property> 
    	<property name="filterChainDefinitions">
        	<value>        		
	            /shiro-cas = casFilter
				/admin/** = roles[ROLE_USER]
				/** = anon
        	</value>
    	</property>
	</bean>
	
	<bean id="casFilter" class="org.apache.shiro.cas.CasFilter">
		<!-- 配置验证错误时的失败页面  -->
		<property name="failureUrl" value="/error.jsp"/>
	</bean>
	
	<bean id="casRealm" class="org.apache.shiro.cas.CasRealm">
		<property name="defaultRoles" value="ROLE_USER"/>		
		<property name="casServerUrlPrefix" value="https://www.cas.com"/>
		<!-- 客户端的回调地址设置,必须和下面的shiro-cas过滤器拦截的地址一致 -->
		<property name="casService" value="http://www.example.com/shiro-cas"/>
	</bean>
	
	<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">  	
    	<property name="realm" ref="casRealm"/>
    	<property name="subjectFactory" ref="casSubjectFactory"/>
	</bean>
	
	<!-- 如果要实现cas的remember me的功能,需要用到下面这个bean,并设置到securityManager的subjectFactory中 -->
	<bean id="casSubjectFactory" class="org.apache.shiro.cas.CasSubjectFactory"/>

	
	<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>

	<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    	<property name="staticMethod" value="org.apache.shiro.SecurityUtils.setSecurityManager"/>
    	<property name="arguments" ref="securityManager"/>
	</bean>
</beans>

 

分享到:
评论
4 楼 liveabc 2015-10-30  
你好,能发送一份代码不? liveabc@163.com 谢谢了
3 楼 zqb666kkk 2015-09-26  
请问有示例源码吗
2 楼 nvry 2013-07-12  
little_shieh 写道
<!-- For simplest integration, so that all SecurityUtils.* methods work in all cases, -->
<!-- make the securityManager bean a static singleton.  DO NOT do this in web  applications - see the 'Web Applications' section below instead.                 -->

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="staticMethod" value="org.apache.shiro.SecurityUtils.setSecurityManager"/>
    <property name="arguments" ref="securityManager"/>
</bean>

你确认你按照这个配置CAS成功了吗?


-----------------------
成功了,我是按照这种方式配置的。
1 楼 little_shieh 2013-07-05  
<!-- For simplest integration, so that all SecurityUtils.* methods work in all cases, -->
<!-- make the securityManager bean a static singleton.  DO NOT do this in web  applications - see the 'Web Applications' section below instead.                 -->

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="staticMethod" value="org.apache.shiro.SecurityUtils.setSecurityManager"/>
    <property name="arguments" ref="securityManager"/>
</bean>

你确认你按照这个配置CAS成功了吗?

相关推荐

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

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

    shiro1.7.1全包修补漏洞.rar

    CAS是一种集中式的身份验证服务,通过这个模块,Shiro能够与CAS服务器进行交互,实现单点登录(SSO)功能。 5. **shiro-web-1.7.1.jar**: Shiro的Web支持模块,用于处理HTTP请求的安全性。它提供了过滤器来处理如...

    单点登录sso-shiro-cas-maven

    #### 以上就是单点登录管理的主要配置 ## 应用系统的配置node1 1. 应用系统采用shiro做权限控制,并且跟cas集成 2. 在/spring-node-1/src/main/resources/conf/shiro.properties 文件中 ``` properties shiro....

    shiro-1.6.tar.gz

    9. **shiro-cas-1.6.0.jar**:集成了CAS(Central Authentication Service)协议,这是一个开放源码的单点登录(Single Sign-On, SSO)系统。这个组件让Shiro能够与CAS服务器交互,实现跨域的用户认证。 通过这些...

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

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

    Shiro 1.7.0所需jar包

    6. **shiro-cas-1.7.0.jar**:CAS(Central Authentication Service)客户端模块,提供了与CAS服务器的交互,支持单点登录(SSO)功能。 7. **shiro-jaxrs-1.7.0.jar**:JAX-RS(Java API for RESTful Web Services...

    shiro所需的全部jar包

    Apache Shiro是一个强大的Java安全框架,它提供了身份验证、授权、加密和会话管理功能,为开发者提供了一种简单易用的方式来确保应用程序的安全性。在Java Web开发中,特别是使用SSM(Spring、SpringMVC、MyBatis)...

    cas结合 springmvc shiro 单点登录

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

    springboot-shiro-cas.zip

    综上所述,"springboot-shiro-cas.zip"项目为我们提供了一个实用的示例,展示了如何在SpringBoot应用中利用Shiro进行权限控制,并结合CAS实现单点登录。这不仅加深了我们对SpringBoot、Shiro和CAS的理解,也为实际...

    前后端分离集成cas

    集成CAS(Central Authentication Service)是为了实现单点登录(Single Sign-On, SSO)。CAS是一个开源的身份验证协议,允许用户在一个域内登录后,无需再次认证就能访问其他系统。这样可以提升用户体验,同时简化...

    cas+shiro+ehcache+srping集成完整代码

    首先,CAS(Central Authentication Service)是一个开源的单点登录(Single Sign-On, SSO)服务器,它允许用户在一个应用中登录后,无须再次认证就能访问其他应用。CAS的核心功能是验证用户凭证并生成服务票证...

    shiro1.2.2版本所需的jar以及源码

    5. **CAS Integration**:CAS(Central Authentication Service)是一种开放源码的单点登录系统,Shiro的CAS模块使得应用可以与CAS服务器进行交互,实现单点登录功能。 6. **Caching**:Shiro提供了一种机制来缓存...

    shiro-1.2.3所有依赖包以及源码

    7. **shiro-cas-1.2.3.jar**:支持Central Authentication Service(CAS)协议,用于单点登录(SSO)场景。 8. **shiro-ehcache-1.2.3.jar**:提供了对Ehcache缓存系统的支持,用于会话和权限的持久化存储。 9. **...

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

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

    cas-shiro单点登录

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

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

    Spring Boot 1.5.4 集成 Shiro+Cas 实现单点登录和权限控制是指在 Spring Boot 应用程序中使用 Shiro 框架和 Cas 服务器来实现单点登录和权限控制的功能。 Shiro 简介 Apache Shiro 是一个开放源代码的安全框架,...

    cas+shiro+spring实例

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

    springboot-casclient.rar

    本项目"springboot-casclient"旨在展示如何将SpringBoot与CAS相结合,实现单点登录,并结合Thymeleaf模板引擎和Shiro权限管理,构建一个完整的安全认证与授权解决方案。 首先,我们来深入理解SpringBoot集成CAS的...

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

    总的来说,这个项目展示了如何利用CAS的单点登录功能,结合Spring MVC的控制能力以及Shiro的权限管理,实现一个全面的身份验证解决方案。对于学习和理解SSO机制以及相关技术的实践应用,这个项目提供了宝贵的参考。

    springboot shiro pac4j cas jwt认证中心sso完整项目

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。本项目基于SpringBoot框架,结合Shiro、pac4j和CAS,构建了一个完整的JWT认证中心,...

Global site tag (gtag.js) - Google Analytics