zoukankan      html  css  js  c++  java
  • SSO 单点登录简单流程(cas)

    配置服务端(链接数据库)

    第一步:

    下载cas-server端,解压开,

    中的解压开,将该包中的内容放入cas文件夹(新建文件夹)中

    然后将这个文件夹放入到服务端的服务器(tomcat)中

    将解压开的文件夹中的

    放入的WEB-INF 下的lib 目录中

    第二步:打开x:xxxxxwebappscasWEB-INF的deployerConfigContext.xml并编辑

    加入以下代码(注意:顺序不要放错了)

     第三步:在C:WindowsSystem32driversetc的hosts中配置域名访问(也可以不用配置,随意)

    本地配置了 所以效果如下:

     此处的域名https 是因为在jdk和tomcat中配置了证书 (也可以不用这样操作)

    以上几步就将SSO单点登录的服务端配置起来了

    ===================================================================

    配置客户端

     在项目中的lib目录下添加这两个jar包(在cas-client中)。

    而后在项目的web.xml 加入以下代码

    <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置-->
    <listener>
    <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
    </listener>
    <!-- 该过滤器用于实现单点登出功能,可选配置 -->
    <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>
    <filter>
    <filter-name>CAS Filter</filter-name>
    <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
    <init-param>
    <param-name>casServerLoginUrl</param-name>
    <param-value>https://sso.sun.com:18181/cas/login</param-value>
    </init-param>
    <init-param>
    <param-name>serverName</param-name>
    <param-value>http://localhost:18080</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>CAS Filter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- 该过滤器负责对Ticket的校验工作,必须启用它 -->
    <filter>
    <filter-name>CAS Validation Filter</filter-name>
    <filter-class>
    org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>
    <init-param>
    <param-name>casServerUrlPrefix</param-name>
    <param-value>https://sso.sun.com:18181/cas</param-value>
    </init-param>
    <init-param>
    <param-name>serverName</param-name>
    <param-value>http://localhost:18080</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>CAS Validation Filter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!--
    该过滤器负责实现HttpServletRequest请求的包裹,比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。
    -->
    <filter>
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
    <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!--
    该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。比如AssertionHolder.getAssertion().getPrincipal().getName()。
    -->
    <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 Assertion Thread Local Filter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    标红的是服务端地址  标蓝的是客户端系统地址

    配置以上 皆可以实现单点登录

    在系统A中添加另外一个系统B的跳转链接,则在登录A系统之后,点击跳转B系统 则一样可以过去(同域情况),原因是带了ticket到另外一个系统中了

     如果想要有 验证码 等操作 ,需要按照cas服务端的路径 写相应的java逻辑 完了 将编译的class文件放入到cas服务端的文件夹中  然后在deployerConfigContext.xml配置即可

  • 相关阅读:
    表操作之数据类型——日期类型
    cocos2dx tableView 的使用
    lua中的循环
    lua中 后端发过来的 按位表示值,在前端中需要处理的函数
    lua 打印表方法
    近况
    lua开发
    4)数据结构和算法学习_链表
    3)数据结构和算法学习_链表
    使用VsCode断点调试TS
  • 原文地址:https://www.cnblogs.com/austinspark-jessylu/p/6911563.html
Copyright © 2011-2022 走看看