简介:
### CAS单点登录服务器配置详解#### 一、CAS单点登录概述CAS(Central Authentication Service)是一种开放源代码的单点登录协议和服务框架,它为Web应用提供了一种简化了的身份验证流程。
通过CAS,用户只需要在一个地方完成登录过程,即可在多个应用间共享登录状态,无需重复登录。
#### 二、CAS服务器安装与配置##### 2.1 安装CAS服务端1. **下载CAS服务端**:首先从官方网址http://www.cas.org/下载最新的CAS服务端压缩包。
2. **部署WAR包**:将下载的WAR包复制到Tomcat的webapps目录下,并将其重命名为`cas.war`。
3. **启动Tomcat**:启动Tomcat服务器,自动解压WAR包,此时会在Tomcat的webapps目录下生成一个名为`cas`的文件夹。
4. **访问CAS**:通过浏览器访问`http://localhost:8896/cas`来测试CAS服务是否正常启动。
##### 2.2 配置CAS使用数据库验证为了实现更安全、更灵活的身份验证机制,我们可以配置CAS使用数据库进行用户身份验证。
具体步骤如下:1. **修改部署配置文件**:打开`cas-server-webapp\WEB-INF\deployerConfigContext.xml`文件,找到`SimpleTestUsernamePasswordAuthenticationHandler`配置项,将其替换为`QueryDatabaseAuthenticationHandler`。
```xml <bean id="authenticationHandler" class="org.jasig.cas.authentication.handler.QueryDatabaseAuthenticationHandler"> <!-- 数据库连接数据源 --> <property name="dataSource" ref="dataSource"/> <!-- 查询语句 --> <property name="sql" value="SELECT password FROM users WHERE username = ?"/> <!-- 密码加密方式 --> <property name="passwordEncoder" ref="passwordEncoder"/> </bean> ```2. **配置数据库连接**:在同一文件中添加一个新的`dataSource` bean来定义数据库连接信息。
```xml <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/casdb"/> <property name="username" value="casuser"/> <property name="password" value="password"/> </bean> ```3. **配置密码加密方式**:继续在同一文件中添加`passwordEncoder` bean来指定密码加密方式,这里使用MD5作为示例。
```xml <bean id="passwordEncoder" class="org.springframework.security.crypto.password.StandardPasswordEncoder"> <constructor-arg value="MD5"/> </bean> ```4. **测试数据库验证**:重启Tomcat服务器,访问CAS服务器页面,使用数据库中的用户名和密码尝试登录,验证是否可以成功登录。
#### 三、CAS工作原理CAS的工作原理主要分为以下几个步骤:1. **用户访问服务**:用户首次访问受保护的资源时,CAS客户端会检测到HTTP请求中缺少ServiceTicket(简称ST),表明用户尚未经过身份验证。
2. **重定向至CAS服务器**:CAS客户端会将用户重定向到CAS服务器进行身份验证,并携带用户的请求URL作为参数(service参数)。
3. **用户认证**:CAS服务器接收到来自用户的认证请求后,引导用户进入登录页面。
用户输入用户名和密码进行登录,若身份验证成功,则CAS服务器通过HTTPS协议返回一个TGC(Ticket-Granting Cookie)给浏览器。
4. **发放ServiceTicket**:CAS服务器生成一个随机的ServiceTicket(简称ST),并将用户重定向回CAS客户端。
5. **验证ServiceTicket**:CAS客户端收到ST后,向CAS服务器验证ST的有效性。
如果验证通过,则允许用户访问受保护资源。
6. **传输用户信息**:CAS服务器验证ST通过后,将用户的相关认证信息发送给CAS客户端。
通过以上步骤,CAS实现了单点登录的功能,极大地提升了用户体验和系统的安全性。
### 四、CAS与HTTPS在配置CAS服务器时,可以选择使用HTTPS协议来增强通信的安全性。
如果选择HTTPS协议,则需要在服务器上配置CAS证书。
证书的创建和导入过程可以参考以下链接:[http://m.blog..net/zrk1000/article/details/51166603](http://m.blog..net/zrk1000/article/details/51166603)### 总结本文详细介绍了如何配置CAS单点登录服务,并重点讲解了如何利用Java代码实现CAS的配置,包括使用数据库进行登录验证的具体步骤。
同时,还阐述了CAS的基本工作原理,帮助读者更好地理解CAS的工作流程和技术细节。
2025/6/15 19:47:19 293KB
1
鹏哥特色教程之C#入门到精通-eNet网络学院  本视频教程非常全面,几乎涵盖了C#语言的全部内容。
你最好选择一本书,再结合视频教程,效果更佳。
但是好书不多,好书的标准是:内容简单、例子多。
最关键的是:你要能看懂。
有些章节讲得很慢,主要是要照顾初学者。
建议大家不要看得太快,有些章节需要反复看。
不可急于求成。
第一章,基础部分1.一个简单的窗口程序2.鹏氏注释法(小聪明)3.变量4.常量5.数据类型(结合第3节观看)6.再说数据类型7.算术表达式8.运算符的简化9.我眼花了吗10.判断语句(选择语句)11.循环语句12.比较运算符13.逻辑表达式14.数组15.函数(或称方法)第二章,中级部分16.类17.类的成员属性18.只读属性和索引19.再说索引20.构造函数和析构函数21.静态类、静态方法、静态变量22.方法的重载23.方法的参数(ref,out,params)24.类的继承20.完善我的留言板(2)21.完善我的留言板(3)22.完善我的留言板(4)25.异常处理26.命名空间27.接口28.泛型29.抽象类30.访问限制关键字31.所有的类的父类32.委托33.事件34.枚举35.结构体36.this关键字37.base关键字38.值类型39.引用类型40.装箱和拆箱41.丢人的自我介绍
2024/12/11 15:08:57 10.65MB c# 教程 VS2005 Csharp
1
JAVA开发人员必备是HTML格式的JavaTM2PlatformStandardEdition6API规范本文档是Java2PlatformStandardEdition6.0的API规范。
请参见:描述Java2Platform软件包java.applet提供创建applet所必需的类和applet用来与其applet上下文通信的类。
java.awt包含用于创建用户界面和绘制图形图像的所有类。
java.awt.color提供用于颜色空间的类。
java.awt.datatransfer提供在应用程序之间和在应用程序内部传输数据的接口和类。
java.awt.dndDrag和Drop是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与GUI中显示元素逻辑相关的实体之间传输信息。
java.awt.event提供处理由AWT组件所激发的各类事件的接口和类。
java.awt.font提供与字体相关的类和接口。
java.awt.geom提供用于在与二维几何形状相关的对象上定义和执行操作的Java2D类。
java.awt.im提供输入方法框架所需的类和接口。
java.awt.im.spi提供启用可以与Java运行时环境一起使用的输入方法开发的接口。
java.awt.image提供创建和修改图像的各种类。
java.awt.image.renderable提供用于生成与呈现无关的图像的类和接口。
java.awt.print为通用的打印API提供类和接口。
java.beans包含与开发beans有关的类,即基于JavaBeansTM架构的组件。
java.beans.beancontext提供与bean上下文有关的类和接口。
java.io通过数据流、序列化和文件系统提供系统输入和输出。
java.lang提供利用Java编程语言进行程序设计的基础类。
java.lang.annotation为Java编程语言注释设施提供库支持。
java.lang.instrument提供允许Java编程语言代理检测运行在JVM上的程序的服务。
java.lang.management提供管理接口,用于监视和管理Java虚拟机以及Java虚拟机在其上运行的操作系统。
java.lang.ref提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。
java.lang.reflect提供类和接口,以获得关于类和对象的反射信息。
java.math提供用于执行任意精度整数算法(BigInteger)和任意精度小数算法(BigDecimal)的类。
java.net为实现网络应用程序提供类。
java.nio定义作为数据容器的缓冲区,并提供其他NIO包的概述。
java.nio.channels定义了各种通道,这些通道表示到能够执行I/O操作的实体(如文件和套接字)的连接;
定义了用于多路复用的、非阻塞I/O操作的选择器。
java.nio.channels.spi用于java.nio.channels包的服务提供者类。
java.nio.charset定义用来在字节和Unicode字符之间转换的charset、解码器和编码器。
java.nio.charset.spijava.nio.charset包的服务提供者类。
java.rmi提供RMI包。
java.rmi.activation为RMI对象激活提供支持。
java.rmi.dgc为RMI分布式垃圾回收提供了类和接口。
java.rmi.registry提供RMI注册表的一个类和两个接口。
java.rmi.server提供支持服务器端RMI的类和接口。
java.security为安全框架提供类和接口。
java.security.acl此包中的类和接口已经被java.security包中的类取代。
java.security.cert提供用于解析和管理证书、证书撤消列表(CRL)和证书路径的类和接口。
java.security.interfaces提供的接口用于生成RSALaboratoryTechnicalNotePKCS#1中定义的RSA(Rivest、Shamir和AdlemanAsymmetricCipher算法)密钥,以及NIST的FIPS-186中定义的
2024/11/8 0:06:29 35.21MB java api jdk chm
1
PSAT较早版本的中文说明书,是翻译过来的。
目录完整,图文详尽,是psat入门必备的使用说明书。
2024/9/19 12:43:53 10.44MB PSAT MATLAB 中文说明书
1
地形-aws-弹性豆茎环境Terraform模块来配置AWSElasticBeanstalk环境该项目是我们针对DevOps的全面方法的一部分。
它是100%开源的,并根据许可。
从字面上看,我们有,它们都是开源的并且维护良好。
去看一下!用法重要信息:由于很难使文档中的版本与最新发布的版本保持同步,因此在示例中我们不会将模块固定在版本上。
我们强烈建议您在代码中将版本固定到正在使用的确切版本,以使基础结构保持稳定,并以系统的方式更新版本,以免出现意外。
另外,由于Terraform注册表()中的错误,该注册表实际上根据需要显示了我们的许多输入,而实际上它们是可选的。
下表正确指出了需要哪些输入。
有关完整的示例,请参见provider"aws"{region=var.region}module"vpc"{source="git::https://github.com/cloudposse/terraform-aws-vpc.git?ref=tags/0.8.0"names
2024/6/27 14:52:42 82KB aws environment terraform elasticbeanstalk
1
这就不用说了吧,不用STL也能说自己做C++?这本2017年的新书就是介绍在C++17下如何更好地进行STL编程。
介绍链接在此:https://www.amazon.com/STL-Cookbook-enhancements-programming-expressions/dp/178712049X/ref=as_li_ss_tl?_encoding=UTF8&pd_rd_i=178712049X&pd_rd_r=K7D6G81D4VM1P35P0K0S&pd_rd_w=Lh4zr&pd_rd_wg=ToJVP&psc=1&refRID=K7D6G81D4VM1P35P0K0S&linkCode=sl1&tag=bfilipek-20&linkId=3ccfb9b60836de910ac6069ac899f9d1
2024/5/16 22:25:58 10.18MB C++ Modern C++17
1
C#8.0向C#语言添加了以下功能和增强功能:Readonly成员默认接口方法模式匹配增强功能:Switch表达式属性模式元组模式位置模式Using声明静态本地函数可处置的ref结构可为空引用类型异步流异步可释放索引和范围Null合并赋值非托管构造类型嵌套表达式中的Stackalloc内插逐字字符串的增强功能.NETCore3.x和.NETStandard2.1支持C#8.0。
2024/3/31 19:16:06 11.13MB c# .net xml linq
1
设定:一个房间中两个麦克风,一个放在远处采集房间噪声,一个放在说话人附近采集带噪语音信号,认为两个音频文件的噪声相似。
目标是使用LMS自适应滤波算法来抑制噪声还原语音。
仿真:现给定一录音.mat文件,其中:s是原音频内容;
ref_noise是均值为0,方差为1的高斯噪声;
mixed是叠加上高斯噪声序列;
fs为信号采样率。
要求使用LMS自适应滤波法抑制噪声。
2024/2/11 6:23:56 14.21MB matlab 自适应滤波 LMS去噪
1
土壤属性表主要字段包括:SU_SYM90(FAO90土壤分类系统中土壤名称);
SU_SYM85(FAO85分类);T_TEXTURE(顶层土壤质地);DRAINAGE(19.5);REF_DEPTH(土壤参考深度);AWC_CLASS(19.5);AWC_CLASS(土壤有效水含量);PHASE1:Real(土壤相位);PHASE2:String(土壤相位);
ROOTS:String(到土壤底部存在障碍的深度分类);
SWR:String(土壤含水量特征);
ADD_PROP:Real(土壤单元中与农业用途有关的特定土壤类型);
T_GRAVEL:Real(碎石体积百分比);
T_SAND:Real(沙含量);
T_SILT:Real(淤泥含量);
T_CLAY:Real(粘土含量);
T_USDA_TEX:Real(USDA土壤质地分类);
T_REF_BULK:Real(土壤容重);
T_OC:Real(有机碳含量);
T_PH_H2O:Real(酸碱度)T_CEC_CLAY:Real(粘性层土壤的阳离子交换能力);
T_CEC_SOIL:Real(土壤的阳离子交换能力)T_BS:Real(基本饱和度);
T_TEB:Real(交换性盐基);
T_CACO3:Real(碳酸盐或石灰含量)T_CASO4:Real(硫酸盐含量);
T_ESP:Real(可交换钠盐);
T_ECE:Real(电导率)。
2023/10/24 16:55:32 24.87MB 世界土壤HWSD
1
C#ToJavaconverter是一款将C#代码片段或者C#项目转换为JAVA的工具。
转换所有版本的C#代码评估所有引用的程序集和.NET项目,以便更完整地解析外部引用许多转换和格式化选项将C#代理和lambdas转换为Java接口和lambdas使用Java泛型转换C#ref参数当代码中定义事件委托时转换C#事件,或者是System.Action或System.Func代理之一将所有类型的数组从C#转换成Java对于继承和接口的所有方面,从C#到Java的无瑕疵转换允许自定义替换最终转换代码中的字符串准确甚至格式不正确的C#代码
1
共 20 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡