`
mqzsweet
  • 浏览: 135195 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

SSO之简单实例

    博客分类:
  • 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相应参数:

 

 

 

分享到:
评论

相关推荐

    sso登录实例

    例如,CAS(Central Authentication Service)是一个常用的开源SSO协议,提供了简单且安全的身份验证框架。 5. **配置文件**:项目中可能会包含配置文件,用于设置AC和SP之间的通信参数,如URL、秘钥、信任关系等。...

    sso单点登录实例

    本实例将深入探讨如何实现一个简单的SSO系统。 首先,理解SSO的工作原理是至关重要的。SSO的核心在于身份验证中心(Identity Provider,IDP),用户首次登录IDP时进行身份验证。一旦验证成功,用户可以通过票据...

    PHP编程 SSO详细介绍及简单实例

    ### 二、简单实例解析 这个实例展示了如何在PHP中实现完全跨单点域登录。它包括三个项目:`oa`、`bbs`和`blog`,每个项目都有自己的登录和主页。 #### 1. 配置目录结构 在服务器根目录下创建三个项目目录,并在根...

    CAS 单点登录 SSO SpringMVC demo 例子 带tomact 非https的,不需要证书。

    这个简单的CAS SSO SpringMVC demo是一个很好的学习资源,对于想要理解如何在非HTTPS环境下实现SSO的开发者来说,它是很好的起点。然而,为了提高安全性,强烈建议在生产环境中使用HTTPS。同时,熟悉CAS的API和配置...

    nginx-sso:基于cookie和ECDSA的nginx的简单SSO系统

    nginx-sso-用于nginx的简单脱机SSO nginx-sso是一个简单的单点登录(SSO)解决方案,可与nginx和nginx auth_request模块一起使用。 就服务提供商而言,它使用ECC公钥签名和cookie以脱机方式对用户进行身份验证。 ...

    sso-casDemo

    本示例"SSO-CASDemo"是一个简单的CAS整合演示,它包含三个Tomcat服务器实例,分别为app1、app2和CAS服务器。这些Tomcat实例分别部署了不同的应用,通过CAS进行统一的身份验证。这个demo是为了帮助开发者更好地理解和...

    sso:适用于PHP的简单单点登录

    Jasny SSO是相对简单直接的单点登录(SSO)解决方案。 使用SSO,登录到一个网站将对所有联属网站进行身份验证。 这些站点不需要共享顶级域。 这个怎么运作 使用SSO时,可以区分3个方: 客户端-这是访客的浏览器 ...

    sso opensource

    2. **OAuth 2.0和OpenID Connect协议支持**:IdentityServer实现了这两个广泛使用的开放标准,OAuth 2.0用于授权,OpenID Connect则是一个身份验证层,构建在OAuth 2.0之上,提供简单的用户身份验证API。 3. **JWT...

    simple-sso.zip

    SSO,全称为Single Sign-On...总的来说,"simple-sso.zip"中的内容为我们提供了一个简单的SSO实现框架,包括了服务器、客户端和子系统的代码,通过理解和学习这个例子,开发者可以更好地掌握SSO的工作原理和实现方式。

    ssm+redis实现sso单点登陆,maven模块化实现

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。本项目基于SSM(Spring、SpringMVC、...这个项目为理解和实践SSO提供了很好的实例。

    Jasny-Bootstrap 的简单实例

    在“Jasny-Bootstrap 的简单实例”中,我们将探讨如何利用这个库来实现固定格式的文本展示和其他特性。 首先,Bootstrap是一个流行的前端开发框架,它包含了CSS、JavaScript组件和字体图标,用于快速构建响应式和...

    跨域 SSO 原理与技术

    在实际应用中,Google的G Suite就是一个跨域SSO的例子。用户在Google账户(IDP)登录后,可以无缝访问Gmail、Google Drive等其他Google服务(SP)。这是因为Google使用了OpenID Connect和OAuth2.0协议,确保了跨域...

    SSO CAS 单点登录实例SSOAuth+SSOWebDemo1+SSOWebDemo2.zip

    单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 较大的企业内部,一般都有很多的...

    Python库 | aws-cdk.aws-sso-1.107.0.tar.gz

    总结来说,aws-cdk.aws-sso-1.107.0是AWS SSO与Python结合的有力工具,它为后端开发者提供了一种高效的管理方式,使得在复杂的云计算环境中配置和维护权限变得更加简单。借助这个库,开发者可以更加专注于业务逻辑,...

    asp.net简单实现单点登录(SSO)的方法

    本文实例讲述了asp.net简单实现单点登录(SSO)的方法。分享给大家供大家参考,具体如下: 单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,...

    【ASP.NET编程知识】浅谈谁都能看懂的单点登录(SSO)实现方式(附源码).docx

    通过上述方式,我们可以利用ASP.NET构建一个简单的SSO系统,适用于二级域名和跨域场景。虽然这个例子中的代码简洁明了,但实际的生产环境中,SSO系统可能需要考虑更多的安全性和扩展性问题,如Token的安全传输、防止...

    Python库 | mypy_boto3_sso_admin-1.16.47.0-py3-none-any.whl

    AWS SSO Admin API是Boto3中的一个部分,提供了用于管理SSO实例、用户、组和权限集的接口。使用mypy_boto3_sso_admin库,开发者可以为这些API调用添加类型注解,从而在编写与AWS SSO交互的代码时获得更好的类型安全...

    使用springboot结合vue实现sso单点登录

    Vue 是当前最流行的前端框架之一,具有灵活、灵活、简洁的特点。它提供了强大的组件、指令、插件等功能,可以轻松地构建复杂的前端应用程序。使用 Vue,我们可以轻松地构建高性能、响应式的前端应用程序。 SSO 单点...

    Python库 | mypy_boto3_sso-1.14.35.0-py3-none-any.whl

    `boto3`提供了简单易用的API,使得开发者可以方便地执行各种AWS操作,如创建EC2实例、管理S3对象或使用Lambda函数。 **mypy_boto3_sso** `mypy_boto3_sso`库是针对`boto3`的一个类型定义扩展,专注于AWS Single ...

Global site tag (gtag.js) - Google Analytics