轻松搭建CAS 5.x系列(4)-Java客户端程序接入CAS单点登录,Hello World版
概述说明
按照本系列的前3篇文章描述的步骤,我们已经搭建好cas sso server。那应用程序怎么接入到实现sso呢? (如果您还没有搭建cas server,可以到《轻松搭建CAS 5.x系列文章》按照步驟) CAS官方支持了JAVA、.NET和PHP客户端程序接入支持,其他语言如Python,可以找找非官方的支持。 本章节是编写最简单版本的Java的客户端接入。
操作步骤
进入正题
·1. 首先启动tomcat,看下之前搭建的cas server启动是否正常
双击D:\casoverlay\apache-tomcat-8.5.31\bin\startup.bat 访问 https://cas.example.org:8443/cas/login
2.编写一个war程序cas-client-demo
项目的目录结构件下图
·3. cas-client-demo添加项目依赖jar包
从cas server的项目lib目录中(D:\casoverlay\apache-tomcat-8.5.31\webapps\cas\WEB-INF\lib)
直接copy如下文件到D:\casoverlay\apache-tomcat-8.5.31\webapps\cas-client-demo\WEB-INF\lib
cas-client-core-3.4..jar
commons-logging-1.2.jar
log4j-api-2.8..jar
log4j-slf4j-impl-2.8..jar
slf4j-api-1.7..jar
·4. cas-client-demo的web.xml
新增文件D:\casoverlay\apache-tomcat-8.5.31\webapps\cas-client-demo\WEB-INF\web.xml
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true"> <display-name>Tomcat Documentation</display-name>
<description>
Tomcat Documentation.
</description> <filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://cas.example.org:8443/cas</param-value>
</init-param>
</filter> <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://cas.example.org:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://127.0.0.1:8080</param-value>
</init-param>
</filter> <filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas30ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://cas.example.org:8443/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://127.0.0.1:8080</param-value>
</init-param>
<init-param>
<param-name>redirectAfterValidation</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>useSession</param-name>
<param-value>true</param-value>
</init-param>
<!--
<init-param>
<param-name>acceptAnyProxy</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>proxyReceptorUrl</param-name>
<param-value>/sample/proxyUrl</param-value>
</init-param>
<init-param>
<param-name>proxyCallbackUrl</param-name>
<param-value>https://mmoayyed.unicon.net:9443/sample/proxyUrl</param-value>
</init-param>
-->
<init-param>
<param-name>authn_method</param-name>
<param-value>mfa-duo</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-mapping>
<filter-name>CAS Single Sign Out 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 Authentication 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> <welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
</web-app>
·5. cas-client-demo编写获取cas当前登录信息的帐号名
新增文件D:\casoverlay\apache-tomcat-8.5.31\webapps\cas-client-demo\index.jsp
内容如下
<html>
<body>
Hello World,<%=request.getRemoteUser()%>!
<HR>
<a href="https://cas.example.org:8443/cas/logout">Logout</a>
</body>
</html>
`6. 至此我们的cas客户端的代码已经编写好了
不过,
由于CAS认证是通过web servcie方式调用cas服务端的,
cas服务端的SSL证书是我们本地生成,
直接调用cas的web接口会出现报错,
需要将证书导入到客户端。
具体导入客户端的步骤,我后面会写新的文章。
·7. 重新启动tomcat,访问 cas-client-demo
https://127.0.0.1:8443/cas-client-demo/index.jsp
系统会自动跳转到登录页面
-8. 输入帐号名密码
admin/123456
大功告成!
参考文档
最后,
大家想更多CAS了解的话,
可以来CAS中文文档站点(http://www.cassso-china.cn)来瞅瞅
最新文章
- JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有)
- PYTHON3连接MYSQL数据库
- asp:gridview 中显示日期格式
- HTML5做的浏览器欢迎界面自动跳转
- QT下的几种透明效果(三种方法:调色板,透明度属性,自绘)
- relatedTarget, fromElement, toElement
- 20.org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
- 【转】 /etc/fstab功能详解
- a标签的背景图在ie8下不显示的问题
- dict-字典功能介绍
- 虚拟机克隆,并设置新的ip
- Java开发笔记(六十二)如何定义函数式接口
- LightGBM大战XGBoost,谁将夺得桂冠?
- Linux下SVN创建新的项目
- ruby中的alias和alias_method
- 【代码笔记】iOS-mp3的播放
- 接口测试-Http状态码-postman上传文件
- 续:纠正:debian【4】可以安装,而且完美的安装 ! for《Oracle-10.2.0.1,打补丁10.2.0.5:在 debian 版本4【不含4】以上,及 ubuntu 7.04【不含7.04】以上都可以安装!》
- CentOS Gnome字体不清晰
- Mint UI 之 Swipe 组件
热门文章
- Hibernate 生成策略和缓存策略
- DELPHI搭建centos开发环境
- Linux Bash Shell j简单入门
- 深入理解DefaultMessageListenerContainer
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)--续
- jpeglib.h jerror.h No such file or directory 以及 SDL/SDL.h: 没有那个文件
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_09-SpringSecurityOauth2研究-Oauth2密码模式授权
- (十九)oracle 基础使用以及sql语句基础
- win7下docker环境安装
- 海量无损高音质音乐文件分享180TB(持续更新)