2019独角兽企业重金招聘Python工程师标准>>>

一、随便的创建一个客户端的web项目,如casclient1

编写一个index.jsp如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CASClient1's index.jsp</title>
</head>
<body>
<%
/*获取登录用户名*/  String username = request.getRemoteUser();
%>
<h1>成功登录===casClient1111===系统</h1>
current user: <%=username %>
<p><a href="https://localhost:8443/cas/logout">logout</a></p>
</body>
</html>  

设置web.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><display-name>casclient1</display-name><!-- 该过滤器用于实现单点登出功能,可选配置。 -->
<!-- 登出地址 https://casserver:8443/cas/logout -->
<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 Authentication Filter</filter-name>  <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>  <init-param>  <param-name>casServerLoginUrl</param-name>  <param-value>https://localhost:8443/cas/login</param-value>  </init-param>  <init-param>  <param-name>serverName</param-name>  <param-value>http://localhost:8088</param-value>  </init-param>
</filter>  <!-- 该过滤器负责对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://localhost:8443/cas</param-value>  </init-param>  <init-param>  <param-name>serverName</param-name>  <param-value>http://localhost:8088</param-value>  </init-param>  <init-param>  <param-name>redirectAfterValidation</param-name>  <param-value>true</param-value>  </init-param>
</filter>  <!-- 该过滤器负责实现HttpServletRequest请求的包装, 比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。 -->
<filter>  <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>  <!-- 该过滤器使得开发者可以通过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 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>  <listener>  <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>  <welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list>
</web-app>

加入如下包:

cas-client-core-3.3.3.jar
  slf4j-api-1.7.1.jar

按照上面,再创建一个项目如:casclient2 。做单点登录的功能验证。

二、启动一个这两个项目,并访问casclient1 的index.jsp页面。你所看到的将是单点登录服务器的登录界面。正确的完成登录后,服务器就会重定向到index.jsp页面了。

这里你再访问casclient2的index.jsp页面时,就没进入登录界面了。完成了单点登录的功能。

注意:

你可能会碰到如下异常,在下节中我们再提到:

java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetorg.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:407)org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:45)org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:200)org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:206)org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:161)org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:100)
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetsun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)sun.security.validator.Validator.validate(Validator.java:260)sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1428)sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:209)sun.security.ssl.Handshaker.processLoop(Handshaker.java:913)sun.security.ssl.Handshaker.process_record(Handshaker.java:849)sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1023)sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1301)sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:393)org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:45)org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:200)org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:206)org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:161)org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:100)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.75 logs.

转载于:https://my.oschina.net/u/2552286/blog/855678

cas-client 使用(6)相关推荐

  1. Eclipse配置CAS client

    1.新建一个Maven项目 2.Next,选择 3.输入group id 和 artifact id -->  Finish 4.项目创建完成的目录结构 编辑pom.xml文件,写上依赖 注意把 ...

  2. cas 单点登录_47 使用cas完成单点登录-02 搭建cas client完成单点登录

    上一节我们搭建了cas server.这一节我们将搭建两个客户端完成单点登录的测试. 1.前提约束 完成搭建cas serverhttps://www.jianshu.com/p/ed0c1359b8 ...

  3. CAS Client 3.2.1 配置详解

    CAS Client 3.2.1 配置详解 http://www.pinhuba.com/casclient/101256.htm 摘要: CAS作为开源的单点登陆框架已经非常的流行了.由于它对已有系 ...

  4. cas client 更新ticket_cas sso单点登录系列6_cas单点登录防止登出退出后刷新后退ticket失效报500错...

    转(http://blog.csdn.net/ae6623/article/details/9494601) 问题: 我登录了client2,又登录了client3,现在我把client2退出了,在c ...

  5. cas client 更新ticket_有人知道 cas单点登录系统是怎么样取得proxyticket的?

    展开全部 CAS 原理和协议 从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client.CAS Server 需要独立部署,主要负责62616964757a686964616 ...

  6. SSO单点登录详解-------八、搭建CAS Client服务端

    一.前言 目前为止我们已经搭建好了CAS Server端,我们需要来搭建客户端配合使用,完成单点登录和单点注销的功能.我们将讲两种方式来搭建CAS Client端.一种是普通项目搭建,另一种是基于Sp ...

  7. CAS client 登录认证 报不允许使用CAS来认证您访问的目标应用。

    CAS client 登录认证 报不允许使用CAS来认证您访问的目标应用. .. 解决方案: 修改src/main/resources/services目录下的HTTPSandIMAPS-100000 ...

  8. cas client 更新ticket_SSO单点登录一:cas单点登录防止登出退出后刷新后退ticket失效报500错,也有退出后直接重新登录报票根验证错误...

    问题1: 我登录了client2,又登录了client3,现在我把client2退出了,在client3里面我F5刷新了一下,结果页面报错: 未能够识别出目标 'ST-41-2VcnVMguCDWJX ...

  9. Yale CAS + .net Client 实现 SSO(3)

    第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 第三部分:实现 ASP.NET WebForm Client 1. 下载.NET CAS client. .NET CAS Client ...

  10. cas单点登录系统:客户端(client)详细配置(包含统一单点注销配置)

    最近一直在研究cas登录中心这一块的应用,分享一下记录的一些笔记和心得.后面会把cas-server端的配置和重构,另外还有这几天再搞nginx+cas的https反向代理配置,以及cas的证书相关的 ...

最新文章

  1. 云计算网络基础第八天
  2. 隐藏标准选择界面按钮
  3. html坐标定位图解,HTML5地理定位实例
  4. B+/-Tree原理及mysql的索引分析
  5. lettuce 配置域名 dns 切换
  6. 热点分析图_通过分析功率MOSFET管的工作特性,判断其损坏原因
  7. c语言生产者与消费者实验报告,生产者和消费者实验报告.doc
  8. 蓝桥杯 BASIC-10 十进制转十六进制
  9. android 识别车牌颜色,Android、ios移动端车牌识别sdk / 车牌识别API
  10. 分享一套比较全的Java技术栈,值得参考!
  11. 云原生虚拟网络之 VXLAN 协议
  12. java图片打包下载_java 批量下载图片,批量打包文件并下载
  13. java如何设置控制台打印的字体颜色、背景、字体样式(idea设置打印字体样式)工具类 - 附插件方式
  14. 网络打印机计算机服务,打印机服务器与网络打印机的安装
  15. 机场航班起降与协调管理系统飞机航班(含源码+论文+答辩PPT等)
  16. 计算机动漫与游戏制作职业群,四川省工业贸易学校计算机动漫与游戏制作专业...
  17. 教你如何将360全景图免费下载到本地,并生成全景漫游
  18. 论文的可复现性,能否量化分析?
  19. 【JavaSE专栏内容导航】JavaSE与数据结构基础知识系列
  20. 理解onMeasure

热门文章

  1. 8_python基础—高级变量类型(字符串、列表、元组、字典、集合)
  2. linux memcpy 效率,memcpy每秒字节速率
  3. w ndows2000,华塑CAE软件简介
  4. python画多层网络_绘制多层n
  5. cnn神经网络_神经网络之CNN和RNN
  6. html 下拉滚动加载,原生js滚动到底部加载数据和下拉刷新 Scrollload
  7. python坐标定位_Python_元素定位浏览器坐标定位
  8. 科学与技术名词解释计算机病毒,名词解释计算机病毒
  9. 使用DOM4J解析XML及采用Schema校验的方法
  10. 计算机英语讲课笔记04