SSO之简单实例

在做完了TOMCAT的SSL设置后,接下来我们用CAS做一个简单的实例。

 

一、环境准备

下载相应的服务器端包和客户端包

 

cas官方网站

http://www.jasig.org/cas

 

下载最新的服务端 CAS Server 3.3.3 Final

 

cas官方网站上面的客户端下载地址比较隐秘,没有完全公开,具体地址为

http://www.ja-sig.org/downloads/cas-clients/

下载最新的cas-client-3.1.6-release.zip

 

 

二、服务器端设置

 

将服务器端解压,将modules下面的cas-server-webapp-3.3.3.war部署到web服务器,重命名为CAS.war,作为单点的服务器。

 

 

三、客户端设置

 

1、解压后把modules下面的包放到我们的web应用中。导入相庆的SPRING.JAR包

 

2.配置web.xml,注意encodingFilter要提前配置,不然会出现数据插入数据库的时候有乱码。

serverName是我们web应用的地址和端口

 

 

 

 

	<context-param>   
        <param-name>serverName</param-name>   
   
   
        <param-value>www.test.com:9080</param-value>   
   
    </context-param>   
        
        
    <filter>   
        <filter-name>encodingFilter</filter-name>   
        <filter-class>   
            org.springframework.web.filter.CharacterEncodingFilter    
        </filter-class>   
        <init-param>   
            <param-name>encoding</param-name>   
            <param-value>UTF-8</param-value>   
        </init-param>   
        <init-param>   
            <param-name>forceEncoding</param-name>   
            <param-value>true</param-value>   
        </init-param>   
    </filter>   
        
        
        
    <filter-mapping>   
        <filter-name>encodingFilter</filter-name>   
        <url-pattern>*.htm</url-pattern>   
    </filter-mapping>   
   
    <filter-mapping>   
        <filter-name>encodingFilter</filter-name>   
        <url-pattern>*.ftl</url-pattern>   
    </filter-mapping>   
   
    <filter-mapping>   
        <filter-name>encodingFilter</filter-name>   
        <url-pattern>*.xhtml</url-pattern>   
    </filter-mapping>   
    <filter-mapping>   
        <filter-name>encodingFilter</filter-name>   
        <url-pattern>*.html</url-pattern>   
    </filter-mapping>   
    <filter-mapping>   
        <filter-name>encodingFilter</filter-name>   
        <url-pattern>*.shtml</url-pattern>   
    </filter-mapping>   
   
   
    <filter-mapping>   
        <filter-name>encodingFilter</filter-name>   
        <url-pattern>*.jsp</url-pattern>   
    </filter-mapping>   
    <filter-mapping>   
        <filter-name>encodingFilter</filter-name>   
        <url-pattern>*.do</url-pattern>   
    </filter-mapping>   
    <filter-mapping>   
        <filter-name>encodingFilter</filter-name>   
        <url-pattern>*.vm</url-pattern>   
    </filter-mapping>   
        
        
        
        
        
    <filter>   
        <filter-name>CAS Single Sign Out Filter</filter-name>   
        <filter-class>   
            org.jasig.cas.client.session.SingleSignOutFilter    
        </filter-class>   
    </filter>   
    <filter-mapping>   
        <filter-name>CAS Single Sign Out Filter</filter-name>   
        <url-pattern>/*</url-pattern>   
    </filter-mapping>   
    <listener>   
        <listener-class>   
            org.jasig.cas.client.session.SingleSignOutHttpSessionListener    
        </listener-class>   
    </listener>   
    <filter>   
        <filter-name>CAS Authentication Filter</filter-name>   
        <filter-class>   
            org.jasig.cas.client.authentication.AuthenticationFilter    
        </filter-class>   
        <init-param>   
            <param-name>casServerLoginUrl</param-name>   
            <param-value>https://www.test.com:8443/cas/login</param-value>   
        </init-param>   
    </filter>   
    <filter>   
        <filter-name>CAS Validation Filter</filter-name>   
        <filter-class>   
            org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter    
        </filter-class>   
        <init-param>   
            <param-name>casServerUrlPrefix</param-name>   
            <param-value>https://www.test.com:8443/cas</param-value>   
        </init-param>   
    </filter>   
   
    <filter>   
        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>   
        <filter-class>   
            org.jasig.cas.client.util.HttpServletRequestWrapperFilter    
        </filter-class>   
    </filter>   
    <filter>   
        <filter-name>CAS Assertion Thread Local Filter</filter-name>   
        <filter-class>   
            org.jasig.cas.client.util.AssertionThreadLocalFilter    
        </filter-class>   
    </filter>   
    <filter-mapping>   
        <filter-name>CAS Authentication Filter</filter-name>   
        <url-pattern>/*</url-pattern>   
    </filter-mapping>   
    <filter-mapping>   
        <filter-name>CAS Validation Filter</filter-name>   
        <url-pattern>/*</url-pattern>   
    </filter-mapping>   
    <filter-mapping>   
        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>   
        <url-pattern>/*</url-pattern>   
    </filter-mapping>   
    <filter-mapping>   
        <filter-name>CAS Assertion Thread Local Filter</filter-name>   
        <url-pattern>/*</url-pattern>   
    </filter-mapping>   

 

四、问题

 

在做完上述操作时,可能你会成功运行。但也有会发生以下错误:

 

unable to find valid certification path to requested target的异常

归根到底原因为:

 

产生证书导入的是JDK与TOMCAT所依赖的JRE环境不是同一个JRE。

 

解决方法:

 

将证书导入到相应的JRE中即可。

 

五、FILTER相应参数:

 

 

 

内容概要:本文档主要展示了C语言中关于字符串处理、指针操作以及动态内存分配的相关代码示例。首先介绍了如何实现键值对(“key=value”)字符串的解析,包括去除多余空格和根据键获取对应值的功能,并提供了相应的测试用例。接着演示了从给定字符串中分离出奇偶位置字符的方法,并将结果分别存储到两个不同的缓冲区中。此外,还探讨了常量(const)修饰符在变量和指针中的应用规则,解释了不同类型指针的区别及其使用场景。最后,详细讲解了如何动态分配二维字符数组,并实现了对这类数组的排序与释放操作。 适合人群:具有C语言基础的程序员或计算机科学相关专业的学生,尤其是那些希望深入理解字符串处理、指针操作以及动态内存管理机制的学习者。 使用场景及目标:①掌握如何高效地解析键值对字符串并去除其中的空白字符;②学会编写能够正确处理奇偶索引字符的函数;③理解const修饰符的作用范围及其对程序逻辑的影响;④熟悉动态分配二维字符数组的技术,并能对其进行有效的排序和清理。 阅读建议:由于本资源涉及较多底层概念和技术细节,建议读者先复习C语言基础知识,特别是指针和内存管理部分。在学习过程中,可以尝试动手编写类似的代码片段,以便更好地理解和掌握文中所介绍的各种技巧。同时,注意观察代码注释,它们对于理解复杂逻辑非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值