`
balance9
  • 浏览: 14617 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

SpringSecurity 3.1 与 cas 集成 配置文件说明

阅读更多
    SpringSecurity 3.1 与 CAS 集成的配置文件及说明
    注:
    1、testSecurityMetadataSource为自定义,实现用户访问url与role对应关系的查询和验证。
    2、testUserDetailServiceProxy为自定义,根据用户的用户id,查询用户详细信息的功能。
<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="http://www.springframework.org/schema/security"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
	<!-- CAS验证配置。-->
	<!-- 适用环境:用户身份验证由CAS完成,用户是否有权限访问指定url则由业务系统来负责验证  -->
	<!-- 验证过程:1.用户访问受限的url,springsecurity 将请求转发到cas服务器上 -->
	<!-- 验证过程:2.用户在cas服务器上登录,cas服务器将验证返馈信息返回给应用 -->
	<!-- 验证过程:3.用户登录成功后,继续是行下面的验证过滤器testFilterSecurityInterceptor的验证,如果用户拥有访问url的指定角色,则转发到目标url,否则转发到禁止访问页面。-->
	<!--
		Enable security, let the casAuthenticationEntryPoint handle all intercepted urls. The CAS_FILTER needs to be in the
		right position within the filter chain.
	-->
	<!-- 在http标签上添加entry-point-ref 指定验证入口为 casAuthenticationEntryPoint -->
	<security:http entry-point-ref="casAuthenticationEntryPoint" auto-config="false" pattern="/**">
		<!-- 设置所有url访问需要包括角色ROLE_USER,可选。 -->
		<security:intercept-url pattern="/**" access="ROLE_USER"></security:intercept-url>
		<!-- 在验证链中添加cas的过滤器,用于进行cas验证。 -->
		<security:custom-filter position="CAS_FILTER" ref="casAuthenticationFilter"></security:custom-filter>
		<!-- 添加自定义url权限的验证过滤,放在FILTER_SECURITY_INTERCEPTOR前面,用于进行验证当前用户是否拥有访问指定url的权限。 -->
		<security:custom-filter before="FILTER_SECURITY_INTERCEPTOR" ref="testFilterSecurityInterceptor"></security:custom-filter>
	</security:http>
	<!-- 定义资源权限验证的过滤器。 -->
	<bean id="testFilterSecurityInterceptor" class="org.springframework.security.web.access.intercept.FilterSecurityInterceptor">
		<!-- 身份验证器 -->
		<property name="authenticationManager" ref="authenticationManager" />
		<!-- 访问决策器 -->
		<property name="accessDecisionManager" ref="testAccessDecisionManager" />
		<!-- 获取可访问资源的role列表 -->
		<property name="securityMetadataSource" ref="testSecurityMetadataSource" />
	</bean>
	<!-- 访问决策器 -->
	<bean id="testAccessDecisionManager" class="org.springframework.security.access.vote.AffirmativeBased">
		<constructor-arg index="0">
			<list>
				<bean class="org.springframework.security.access.vote.RoleVoter">
					<property name="rolePrefix" value=""></property>
				</bean>
			</list>
		</constructor-arg>
	</bean>
	<!-- 获取可访问资源的role列表 -->
	<bean id="testSecurityMetadataSource" class="com.balance.test.integeration.acegi.AutoDelegatingSecurityMetadataSource" />
	<!--
		Required for the casProcessingFilter, so define it explicitly set and specify an Id Even though the
		authenticationManager is created by default when namespace based config is used.
	-->
	<!-- 身份验证器 -->
	<security:authentication-manager alias="authenticationManager">
		<!-- CAS身份验证器 -->
		<security:authentication-provider ref="casAuthenticationProvider"></security:authentication-provider>
	</security:authentication-manager>
	<!--
		This section is used to configure CAS. The service is the actual redirect that will be triggered after the CAS login
		sequence.
	-->
	<bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties">
		<!--
			http://localhost:8088/具体应用/j_spring_cas_security_check spring的虚拟URL,此标志标识使用 CAS authentication (upon return from CAS
			SSO login.)
		-->
		<property name="service" value="http://PCNAME:8080/test/j_spring_cas_security_check"></property>
		<property name="sendRenew" value="false"></property>
	</bean>

	<!--The CAS filter handles the redirect from the CAS server and starts the ticket validation.-->
	<bean id="casAuthenticationFilter" class="org.springframework.security.cas.web.CasAuthenticationFilter">
		<property name="authenticationManager" ref="authenticationManager"></property>
	</bean>

	<!--
		The entryPoint intercepts all the CAS authentication requests. It redirects to the CAS loginUrl for the CAS login
		page.
	-->
	<bean id="casAuthenticationEntryPoint" class="org.springframework.security.cas.web.CasAuthenticationEntryPoint">
		<!-- SSO登录地址 -->
		<property name="loginUrl" value="https://PCNAME:8443/cas/login"></property>
		<property name="serviceProperties" ref="serviceProperties"></property>
	</bean>

	<!--Handles the CAS ticket processing.-->
	<bean id="casAuthenticationProvider" class="org.springframework.security.cas.authentication.CasAuthenticationProvider">
		<property name="authenticationUserDetailsService" ref="casAuthenticationUserDetailsService" />
		<property name="serviceProperties" ref="serviceProperties"></property>
		<property name="ticketValidator">
			<bean class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">
				<!-- SSO验证地址 -->
				<constructor-arg index="0" value="https:/PCNAME:8443/cas" />
			</bean>
		</property>
		<property name="key" value="cas"></property>
	</bean>
	<!-- userdetail service cas wrapper -->
	<bean id="casAuthenticationUserDetailsService" class="org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper">
		<property name="userDetailsService">
			<ref bean="testUserDetailServiceProxy" />
		</property>
	</bean>
	<!-- userdetailService 定义 -->
	<bean id="testUserDetailServiceProxy" class="com.balance.test.integeration.acegi.AutoDelegatingUserDetailService">
		<property name="reservedUsernamePrefixs" value="admin,manager,user" />
	</bean>
</beans>

 

 

分享到:
评论

相关推荐

    SSO单点登录Spring-Security & CAS

    - **配置数据源**:在CAS配置文件中添加数据源信息。 - **配置JDBC认证器**:定义如何查询数据库获取用户信息。 ##### 2.4 扩展CASServer界面 CAS提供了自定义界面的功能,可以通过修改模板文件来自定义登录页面的...

    springsecurity官方文档3.2

    - **web.xml 配置**: 描述了如何在 web.xml 文件中设置基本的 Spring Security 配置。 - **最小的 `&lt;http&gt;` 配置**: 展示了一个简单的 HTTP 安全配置示例。 - **表单和基本登录选项**: 介绍了如何配置表单登录和...

    springsecurity整合cas全程

    - **配置 JDBC 数据源**:在 CASServer 的配置文件中添加数据源的相关配置。 - **定义查询语句**:编写 SQL 查询语句,用于从数据库中检索用户信息。 ##### 2.4 扩展 CASServer 界面 除了默认的登录页面,还可以...

    spring security3.1.3 和 spring security3.0.0

    在提供的压缩包中,`spring-security-3.0.0.RELEASE.zip`包含了3.0.0版本的源码,而`spring-security-3.1.3.RELEASE-dist.zip`包含了3.1.3版本的jar文件,可以方便地集成到你的项目中。 总的来说,Spring Security...

    Spring security 官网说明文档(英文版)

    Spring Security 4.0 支持使用 Java 配置而非 XML 配置文件来定义安全规则。 ##### 3.1 Hello Web Security Java 配置 这是一个简单的例子,展示了如何使用 Java 配置实现 Web 安全。 ```java @Configuration @...

    Spring Security 安全权限管理手册.pdf

    - 解释如何修改Spring Security的配置文件来集成数据库,以实现动态化的权限管理。 - **2.2 数据库表结构** - 详细介绍用于存储用户信息及权限的数据库表的设计方案,包括必要的字段及其含义。 **3. 自定义...

    Spring security

    Spring Security 3.1 版本带来了一系列重要的更新,包括但不限于对 Spring Framework 3.1 的支持、新的配置选项以及对现有特性的改进。 ##### 2.2 命名空间更新 在 Spring Security 3.1 中,命名空间也得到了增强...

    Spring Security LDAP 全选管理框架 中文版

    2. **配置LDAP服务器:** 需要在Spring Security的配置文件中指定LDAP服务器的信息,包括主机名、端口、DNS域名等。 3. **定义认证源:** 使用`LdapAuthenticationProvider`来定义认证源,并配置相关的属性,如用户...

    spring security 参考手册中文版

    CAS - spring-security-cas.jar 26 OpenID - spring-security-openid.jar 26 测试 - spring-security-test.jar 26 2.4.4检出来源 26 3. Spring Security 4.2的新特性 27 3.1 Web改进 27 3.2配置改进 28 3.3杂项 28 4...

    Spring Security3技术手册

    - Spring Security支持在`spring-security.xml`配置文件中使用特定的命名空间简化配置过程。 - **示例代码**: 使用`&lt;http auto-config="true"&gt;`简化HTTP安全配置。 - **1.3 完善整个项目** - 包括设置依赖、创建...

    Spring security 4 帮助文档(英文版)

    - **web.xml 配置**:展示如何在 `web.xml` 文件中配置 Spring Security。 - **最小化配置**:提供一个简单的 `&lt;http&gt;` 配置示例。 ##### 4.3 高级 Web 功能 除了基本配置外,Spring Security 还提供了许多高级...

    spring-security-reference-4.1.1.RELEASE

    Spring Security 能够与任何基于 Java 的应用程序无缝集成,并且它支持多种部署环境,如传统的 Java EE 服务器或基于 Web 的应用服务器。 ##### 1.2 历史沿革 Spring Security 最初由 Ben Alex 创建于 2004 年,并...

    cas client

    2. 配置文件:在Spring Boot项目中,通常会有一个`application.properties`或`application.yml`文件,用于配置CAS客户端的相关参数,如CAS服务器的URL、服务验证端点、安全相关的属性等。 3. 登录与票证验证:当...

    spring-security-reference-4.0.1

    - **与 Spring MVC 集成**:如果项目已经使用了 Spring MVC,则可以通过特定的配置方式来集成 Spring Security。 ##### 3.2 HttpSecurity 类 `HttpSecurity` 类是 Java 配置的核心类之一,提供了大量的配置选项来...

Global site tag (gtag.js) - Google Analytics