tomcat版本: tomcat-8.0.29

jdk版本: jdk1.8.0_65

cas版本: cas4.1.2
cas-client-3.4.1

参考来源:

CAS实现单点登录(SSO)经典完整教程

CAS 4.0 配置开发手册

cas客户端应用实现

使用 CAS 在 Tomcat 中实现单点登录

Tomcat (1) —— Mac下配置Tomcat Https/SSL

【高可用HA】Apache (2) —— Mac下安装多个Apache Tomcat实例

目标架构

下载

首先登陆jasig网站http://downloads.jasig.org/,下载相应的cas版本。

由于网站只提供源码包而不提供发布包,所以需要自己下载来编译。

cas会为不同的客户端消费者提供client包,这里我们选择java-client作为演示。

先编译服务端

cas-server-webapp Richard$ mvn clean install -Dmaven.test.skip

然后在target下找到相应的war包"cas-server-webapp-4.1.2.war"

配置

服务端

  • 简单设置

参照以下文章为Tomcat配置好Https

Tomcat (1) —— Mac下配置Tomcat Https/SSL

【高可用HA】Apache (2) —— Mac下安装多个Apache Tomcat实例

然后我们将打好的war包部署再Tomcat上

修改登陆的提示文字"./servers/cluster/tomcat/node-c/webapps/cas/WEB-INF/view/jsp/default/ui/casLoginView.jsp"(为以后的集群环境测试做准备)

然后通过https访问node-c

https://sso.hoau.com:8433/cas/login

打开文件"deployerConfigContext.xml"查看CAS相关的配置:

<bean id="primaryAuthenticationHandler" class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler"> <property name="users"> <map> <entry key="casuser" value="Mellon"/> </map> </property> </bean>
* 初始默认状态下,CAS 通过配置的文件里的用户名密码登陆 casuser/Mellon

尝试登陆

  • 利用数据库来验证

需要的依赖:

cas-server-support-jdbc-4.1.2.jar
mysql-connector-java-5.1.37.jar

MySQL:
在本地的MySQL中创建新的数据库并新建表app_user作为验证用户的目标数据库

修改 deployerConfigContext.xml:

将bean "primaryAuthenticationHandler"注释掉

<!--  by Richard
<bean id="primaryAuthenticationHandler"class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler"><property name="users"><map><entry key="casuser" value="Mellon"/></map></property>
</bean>
-->

增加数据库dataSource

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/hoau-dev"></property> <property name="username" value="root"></property> <property name="password" value="Root123"></property> </bean>

增加PasswordEncoder

<bean id="myPasswordEncoder"class="org.jasig.cas.authentication.handler.PlainTextPasswordEncoder"/>    
*注意 此处的Encoder必须,有的论坛文章可能会使用"DefaultPasswordEncoder",因为我们示例中的密码数据并没有使用加密,所以我们这里用"PlainTextPasswordEncoder"
<bean id="myPasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"> <constructor-arg index="0"> <value>MD5</value> </constructor-arg> </bean>

增加DB的""

<bean id="dbAuthHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"><property name="sql" value="select password from app_user where username=?" /> <property name="dataSource" ref="dataSource" /> <property name="passwordEncoder" ref="myPasswordEncoder"/> </bean>

最后回头查看"authenticationManager"的参数

由于我们已经将配置文件的用户验证方式"primaryAuthenticationHandler"修改成了DB的验证方式"dbAuthHandler",所以我们需要修改"primaryPrincipalResolver"的参数

<bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager"> <constructor-arg> <map> <!-- | IMPORTANT | Every handler requires a unique name. | If more than one instance of the same handler class is configured, you must explicitly | set its name to something other than its default name (typically the simple class name). --> <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" /> <!-- Richard change primaryPrincipalResolver <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" /> --> <entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver" /> </map> </constructor-arg>

测试

尝试访问

https://sso.hoau.com:8433/cas

并使用我们在数据库里面预埋的数据"test01/psw01"登陆

结束

http://www.cnblogs.com/richaaaard/p/5045276.html

CAS (1) —— Mac下配置CAS到Tomcat(服务端)(转)相关推荐

  1. CAS (3) —— Mac下配置CAS客户端经代理访问Tomcat CAS

    CAS (3) -- Mac下配置CAS客户端经代理访问Tomcat CAS tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1.9 ...

  2. 【高可用HA】Apache (4) —— Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk

    Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk httpd版本: httpd-2.4.17 jk版本: tomcat-connectors-1.2.41 参考 ...

  3. mac下配置进行c和matlab混编

    mac下配置进行c和matlab混编 是用mac的小伙伴有时候有没有感觉很痛苦!遇到什么问题,找相关的解决办法真心不方便,我最近在搞一段程序,要进行c和matlab的混编,可是,在matlab中输入: ...

  4. xmapp 在Mac下配置

    由于要做毕业论文,但是手里只有Mac,所以尝试着在Mac下配置了xmapp,网上看了很多,不够全面. 1下载xampp软件 2,安装完成后,使用下面的命令开始运行 XAMPP.在终端下以系统管理员 r ...

  5. 在Mac环境下系统本身就带有的Apache(阿帕奇服务器)和PHP都预装好了,且合并完成。如果不知道请查看MAC 下配置Apache和PHP

    在Mac环境下系统本身就带有的Apache(阿帕奇服务器)和PHP都预装好了,且合并完成.如果不知道请查看MAC 下配置Apache和PHP 1.创建一个空工程, 新建一个php文件,暂且命名为ind ...

  6. mac下查看电脑的tomcat版本

    mac下查看电脑的tomcat版本 进入到tomcat安装目录,bin文件夹 输入sh version.sh,即显示以下信息,我的版本为7

  7. mac下配置php环境变量配置,怎么给mac电脑添加环境变量

    平常我们使用最多的可能是windows系统,但是也有很多同学喜欢mac电脑.但是对于初次使用mac电脑的朋友来说,配置环境变量可能就成为了一道难题,下面我们就来说说怎么在mac下配置环境变量. (学习 ...

  8. 苹果显示服务器错误403,mac下配置nginx报403错误的解决方法

    今天在mac下配置nginx,一直提示403错误,虽然最终是解决了,过程各种苦逼,在这里记录下是怎么处理403报错的. 安装 通过brew命令安装:brew install nginx 配置 配置目录 ...

  9. Ubuntu Server 18.04 LTS 安装Tomcat并配置systemctl管理Tomcat服务

    本文目录 1 下载安装JDK 2 下载安装Tomcat 3 配置systemctl管理Tomcat服务 2019.11.13补充 软件环境 系统版本:Ubuntu Server 18.04.1 LTS ...

最新文章

  1. 【python】点分十进制ip与数字互转
  2. Spring Boot JPA中关联表的使用
  3. ffbe攻略站_最终幻想勇气启示录ffbe兵员强化攻略
  4. Contact Manager Web API 示例[1]CRUD 操作
  5. 2016.05.07华为网盘-将会暂停服务的网站一览 - 做好数据迁移的准备哦
  6. C#笔记17 DataTime类型、断言、internal关键字、GUID、Excel操作、正则表达式、访问剪贴板、设计模式、版本控制
  7. jquery赋值节点
  8. 周记(2016-6-27 -- 2016-7-3)
  9. odoo开发笔记 -- 附件上传
  10. linux adb工具 终极总结
  11. 模2运算 / 模2算法(模2加法、模2减法、模2乘法、模2除法)
  12. matlab曲线拟合幅频特性曲线_频域稳定性与matlab指令计算
  13. git下载、安装、配置与简单应用(git上路之始)
  14. 1 Go 语言环境安装
  15. 2021年CFA备考复习攻略分析
  16. item_history_price - 获取京东商品历史价格信息
  17. No mapping found for HTTP request with URI问题解决
  18. java数组列表_java – 如何显示数组列表中的所有元素?
  19. DevCon 命令行实用工具可替代设备管理器
  20. Qt数据可视化(QBoxPlotSeries盒须图)

热门文章

  1. android dimensions.xml,android – Value等于match_parent或fill_parent在dimensions.xml?
  2. php点击按钮变文字,点击按钮文字变成input框,点击保存变成文字的实现
  3. createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解
  4. 使计算机系统使用方便和_______是操作系统的两个主要设计目标,操作系统练习.doc...
  5. 计算机二级二叉树基础知识,2017年计算机二级公共基础知识学习教程:树与二叉树...
  6. localdate计算相差天数_干掉 Date,LocalDate 真香!
  7. sql update 多个字段_SQL学习之路-20190707
  8. long转时间 unity_Unity3D如何获取时间戳或北京时间
  9. Oracle中限定日期,Oracle 日期的一些简单使用
  10. liferay 采用URL方式传值