简介:
### 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
在Eclipse下,用JAVA开发的在线问卷调查系统(内含WAR包+源码+SQL脚本)
2025/6/9 0:22:43 9.62MB 软件源码
1
开发工具Web应用程序是独立的.jar和可部署.war(Tomcat),具有FileWalker等功能,带有通过SQL查询进行递归DBUnit导出器SQL编辑器,WebShell和Groovy编辑器安装要求Java8(JDK)阿帕奇Maven网页浏览器用Maven构建使用Mavenmvncleaninstall构建启动应用程序作为JAR运行(参数是可选的)java-Dsqleditor-jdbc-url=jdbc:mysql://localhost:3306/classicmodels\-Dsqleditor-jdbc-url="jdbc:sqlserver://localhost:1433;databaseName=classicmodels"\-Dsqleditor-username=root\-Dsqleditor-passw
2025/5/19 7:47:32 8.84MB Java
1
班级班费管理系统v1.0说明文档1.该系统使用JDK1.6+jboss-4.2.0+mysql-5.0.22+NetBeans5.5.1开发,采用EJB3.02.安装过程:(假设环境都已经配置)(1).打开database目录下的sql.sql文件,在mysql环境命令提示下依次执行。
(2).拷贝database目录下的mysql-connector-java-3.1.13-bin.jar文件到jboss服务器下的jboss\server\default\lib目录(3).拷贝database目录下的mysql-ds.xml文件到jboss服务器下的jboss\server\default\deploy目录(4).修改mysql-ds.xml里面的用户名和密码,确保和你的mysql服务器连接得上。
(5).打开NetBeans5.5.1,打开项目。
(6).直接运行项目(7).或者直接拷贝classmoney-ejb.jar和classmoney-war.war到jboss服务器下的jboss\server\default\deploy目录在浏览器中输入:http://localhost:8080/classmoney-war/(8).输入:学号:admin密码:admin以生活委员身份登陆(该系统里面的BOSS)学号:050101001密码:123456以普通身份登陆3.该系统有2个entitybean:Smoney,Userinfo 2个sessionbean:addmoneyBean,userBean4.系统功能介绍:管理员功能:添加用户查看所有用户增加班费收入增加班费支出查看所有班费详细记录查看班费总帐普通用户功能:查看班费总帐2007-12-9
2025/3/24 12:22:32 625KB EJB 班费
1
具体详情https://gitee.com/wuburen/guns#GunsV2.1新版Guns基于SpringBoot全面升级,完美整合springmvc+shiro+mybatis-plus+beetl!在不用写xml配置(V1.0)的基础上进一步简化项目配置,让您更专注于业务开发!抛弃传统springxml的配置方式,利用springboot+javabean方式配置spring,极大简化了pom.xml配置和spring配置.Guns项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),可以直接作为一个后台管理系统的脚手架.如果您不喜欢用SpringBoot,或者您是一个spring初学者,您可以切换到GunsV1.0(点击这里)分支,GunsV1.0基于spring的javabean方式配置项目,同样简洁易上手.注:SpringBoot强大的AutoConfig和统一的依赖管理极大的简化了spring配置和maven依赖,在不了解其都配置了哪些东西的基础上可能会对初学者有一定困扰,所以建议初学者先看GunsV1.0##功能简介用户管理角色管理部门管理菜单管理字典管理业务日志登录日志监控管理通知管理代码生成##使用说明导入sql/guns.sql文件到mysql数据库以maven方式导入项目到ide修改application.yml中的数据库相关的配置,改为您本机的数据库配置启动项目,管理员账号admin/密码111111###如何启动项目Guns目前支持三种启动方式:在IDE里运行GunsApplication类中的main方法启动执行如下maven命令cleanpackage-Dmaven.test.skip=true并从target目录中找到guns-1.0.0-SNAPSHOT.jar,并在jar包的目录下执行如下java命令java-jarguns-1.0.0-SNAPSHOT.jar修改pom.xml中如下片段jar改为war并打包放入到tomcat中执行##所用框架###前端Bootstrapv3.3.6jQueryv2.1.4bootstrap-tablev1.9.0layerv2.1zTreecorev3.5.28WebUploader0.1.5###后端SpringBoot1.5.3.RELEASEMyBatis-Plus2.0.8MyBatis3.4.4Spring4.3.8.RELEASEBeetl2.7.15hibernate-validator5.3.5.FinalEhcache3.3.1Kaptcha2.3.2Fastjson1.2.31Shiro1.4.0Druid1.0.31##项目包结构说明├─main│││├─java│││││├─com.stylefeng.guns----------------项目主代码│││││││├─common----------------项目公用的部分(业务中经常调用的类,例如常量,异常,实体,注解,分页类,节点类)│││││││├─config----------------项目配置代码(例如mybtais-plus配置,ehcache配置等)│││││││├─core----------------项目运行的核心依靠(例如aop日志记录,拦截器,监听器,guns模板引擎,shiro权限检查等)│││││││├─modular----------------项目业务代码│││││││├─GunsApplication类----------------以main方法启动springboot的类│││││││└─GunsServletInitializer类----------------用servlet容器启动springboot的核心类│││││
2025/2/13 0:12:08 70B java SpringBoot guns guns(收费)
1
javaspringboot分布式全家桶安装包:zookeeper-3.4.6.tar.gzdubbo-admin-2.5.3.war
2025/1/12 7:23:25 47.02MB zookeeper dubbo springboot java
1
gitstat,gitlog代码提交辅助统计工具
2024/12/12 8:23:15 11.72MB git stat
1
dubbo-admin的war包JDK是1.7的版本如果有需要的可以自己下载,资源积分5个意思一下
2024/11/18 12:57:30 30.58MB dubbo
1
使用SSM框架完成的订单管理系统,资源为可运行的war包,可解压得到源代码
2024/10/16 2:05:49 14.08MB ssm框架
1
cas-server-webapp-tomcat-5.2.2.war
2024/9/25 6:22:05 101.03MB cas oss 单点登录 tomcat
1
共 65 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡