简介:
### 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
###Ledit使用教程与实例说明####一、引言随着集成电路技术的快速发展,越来越多的设计公司致力于将整个系统整合到单一芯片上,这被称为System-on-a-Chip(SoC)技术。
为了培养更多专业人才,各大高校纷纷开设了专用集成电路设计课程。
本文档旨在详细介绍使用TannerPro系列工具中的Ledit进行电路和版图设计的方法。
Ledit是一款功能强大的布局编辑器,广泛应用于集成电路设计领域。
####二、Ledit基础知识#####2.1实验目的及要求-**实验目的**:熟悉Ledit的基本操作界面;
掌握Ledit的主要功能,包括创建、编辑和修改版图;
理解如何使用Ledit进行版图设计和优化。
-**实验要求**:了解Ledit的基本概念;
掌握Ledit的使用方法;
能够独立完成简单的版图设计任务。
#####2.2相关知识-**Ledit概述**:Ledit是TannerEDA提供的布局编辑器之一,主要用于绘制和编辑集成电路的物理版图。
它可以与TannerEDA的其他工具(如S-Edit和T-Spice)无缝集成,实现电路设计和模拟的全流程。
-**主要功能**:Ledit支持多种层定义和颜色设置;
提供丰富的绘图工具,如线条、矩形、圆等;
具备层间检查和错误修正功能;
能够导出多种格式的版图文件。
-**工作流程**:通常情况下,设计人员会先使用S-Edit完成电路图的设计,然后在Ledit中根据电路图绘制对应的物理版图,最后使用T-Spice对版图进行电气特性模拟。
#####2.3实验内容-**实验准备**:安装TannerPro工具包,确保Ledit等组件正确安装;
准备必要的参考文档或教程。
-**基本操作**:-启动Ledit,熟悉主界面布局。
-创建新的版图文件,设置层定义和颜色。
-使用绘图工具绘制简单的版图元素。
-学习如何移动、复制、旋转和缩放版图元素。
-执行层间检查,修复可能存在的错误。
-**高级功能**:-掌握批量编辑工具,提高设计效率。
-学习如何使用脚本自动化重复性高的设计任务。
-了解如何与其他TannerEDA工具配合使用,实现完整的电路设计流程。
#####2.4随堂练习-练习1:绘制一个简单的CMOS反相器版图。
-练习2:根据提供的电路图,在Ledit中绘制对应的物理版图,并使用T-Spice进行性能模拟。
-练习3:使用Ledit的高级功能优化版图布局,减少面积并改善电气特性。
#####2.5说明-在使用Ledit进行版图设计时,需要注意遵守特定的设计规则,以确保最终产品的可靠性和性能。
-设计过程中可能会遇到各种问题,如DRC错误等,需学会如何排查和解决这些问题。
#####2.6实验报告及要求-**实验报告**:总结实验过程中的所学知识,包括使用的具体工具和技术;
记录实验过程中遇到的问题及其解决方案;
分析版图设计的优劣点,提出改进建议。
-**报告要求**:实验报告应当结构清晰、逻辑严谨;
图表清晰,标注准确;
文字描述简洁明了,避免冗余。
####三、实例说明以下是一个具体的Ledit使用示例,用于指导学生如何完成一个简单的CMOS反相器版图设计:1.**准备工作**:-打开Ledit软件。
-创建一个新的项目文件,设置合适的层定义。
2.**版图设计**:-绘制NMOS和PMOS晶体管。
-连接源极、栅极和漏极。
-添加接触孔和金属层。
3.**版图优化**:-调整元件位置,确保足够的间距。
-使用Ledit的高级工具进行布线优化。
-执行DRC检查,修正错误。
4.**性能模拟**:-将设计好的版图文件导入T-Spice进行模拟。
-分析输出波形,评估电路性能。
-根据模拟结果调整版图设计,直至满足性能要求。
通过本教程的学习,学生将能够熟练掌握Ledit的基本操作,并能够在实际项目中运用这些技能进行高效的电路版图设计。
此外,学生还将了解到集成电路设计的全流程,从电路图设计到物理版图的实现,再到最终的性能模拟与优化。
这对于培养未来的集成电路设计师来说至关重要。
2025/6/13 11:58:24 956KB ledit
1
1绪论41.1课题背景41.2智能家居控制系统的概述51.3课题研究的目的及意义61.4系统设计主要任务62方案设计72.1系统总体设计与分析72.1.1单片机控制部分72.1.2系统工作流程部分82.2远程控制设计与分析82.2.1控制系统设计分析82.2.2控制要求92.2.3单元功能模块92.3传感器信号采集设计与分析92.3.1防火灾发生传感器92.3.2可燃气体泄漏传感器102.3.3防盗传感器102.3.4信号采集设计与分析102.4GSM模块的接口与设计102.4.1TC35模块组成102.4.2TC35模块通信电路102.4.3TC35模块与MCU连接方式102.5红外学习遥控设计112.5.1红外学习遥控的设想112.5.2红外学习遥控的实现113硬件电路设计123.1相关芯片及模块简介123.1.1MCUSM8952AC25P简介123.1.2双音多频收发器MT8870简介123.1.3ISD2500系列单片语音录放简介133.1.4固态继电器(SSR)简介133.2远程控制电路设计133.2.1振铃检测电路133.2.3双音频解码电路153.2.4语言提示电路163.3电源电路设计173.3.15V开关电源稳压器电路173.3.2其他电源稳压器电路173.4TC35短消息模块电路设计173.4.1TC35短消息模块接口电路173.4.2TC35短消息模块控制设计183.5红外学习遥控电路设计193.5.1红外学习遥控接收电路设计193.5.2红外学习遥控发送电路设计194软件部分194.1下位机编程194.1.1主控单片机系统软件设计194.1.2远程控制程序设计214.1.3短信息发送程序设计224.1.4红外学习遥控程序设计234.2上位机(PC机)编程244.2.1用户界面的设计244.2.2串行通信的实现244.2.3控件MSComm使用方法255系统制作及调试265.1使用的仪器仪表及工具275.2硬件制作与调试275.2.1系统PCB板的设计275.2.2系统硬件调试275.3软件及联机调试285.3.1主控程序调试285.3.2短消息发送调试286结论29
1
计算机组成原理实验作业,利用modelsim实现CPU流水线工作流程的模拟工作,能够支持加载指令、分支指令、跳转指令的冒险处理,希望给初学者带来一定的帮助。
2025/5/27 4:11:14 18.2MB Verilog Modelsim 流水线 MIPS指令集
1
•第一讲o什么叫操作系统♣计算机操作系统是指控制和管理计算机的软、硬件资源,合理组织计算机的工作流程,方便用户使用的程序集合。
o操作系统的三个作用管理者……虚拟机♣计算机系统软硬件资源的管理者。
♣为用户提供一台等价的扩展机器或虚拟机。
♣最重要、最基本、最复杂的系统程序,控制应用程序执行的程序。
o操作系统的发展历史每一代思想特别是分时系统(现代的都是分时)定义特点优缺点♣第一代:手工操作•1945-1955•使用机器语言•无操作系统•用于数学计算•输入输出:插件版、纸带、卡片•计算机处理能力日益提升,而手工操作效率低下,造成了资源浪费。
♣第二代:单批道处理系统•1955-1965•用于大型机•使用汇编语言,FORTRAN,作业•FMS(FortranMonitorSystem),IBSYS(IBM为7094机配备的操作系统)•用于较复杂的科学工程计算o联机批处理o脱机批处理•机时在走来走去中浪费掉•优点:同一批作业自动依次更替,改善了主机CPU和I/O设备的使用效率,提高了吞吐量。
•主要问题:CPU和I/O设备使用忙闲不均,取决于作业特性。
o计算为主的作业,外设空闲;
oI/O为主的作业,CPU空闲。
♣第三代:多批道处理系统•1965-1980•使用集成电路•操作系统:庞大、复杂•多道:内存中同时存放几个作业。
•几项新技术:Multiprogramming,Spooling•优点:o资源利用率高(CPU、内存、I/O)o作业吞吐量大•缺点:o用户交互性差o作业平均周转时间长♣第四代:分时系统•70年代中期至今•多个用户分享使用同一台计算机。
多个程序分时共享硬件和软件资源。
•通常按时间片分配:各个程序在CPU上执行的轮换时间。
•操作系统:CTSS(M.I.T.)、Multics(computercommunity)•特征:o同时性♣也称多路性。
若干用户同时与一台计算机相连,宏观上看各个用户在同时使用计算机,他们是并行的;
微观上看各个用户在轮流使用计算机。
o交互性♣用户通过终端设备(如键盘、鼠标)向系统发出请求,并根据系统的响应结果再向系统发出请求,直至得到满意的结果。
o独立性♣每个用户使用各自的终端与系统交互,彼此独立、互不干扰o及时性♣指用户向系统发出请求后,应该在较短的时间内得到响应。
♣新发展:个人计算机、实时系统、网络与分布式系统、移动计算……o什么叫中断♣中断:指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。
♣通道:用于控制I/O设备与内存间的数据传输。
启动后可独立与CPU运行,实现CPU与I/O的并行。
o中断的处理机制
2025/4/29 12:58:18 5.38MB 操作系统
1
硬件设计:采用Proteus进行电路原理图设计与仿真1)单片机选用AT89C51,它与8051系列单片机全兼容,但其内部带有4KB的FLASHROM,设计时无需外接程序存储器。
2)显示部分:南北向和东西向各采用2个LED数码管计时,对该方向的指示灯的点亮时间进行倒计时,最长计时范围为99秒。
3)键盘部分:设置键、增加键、减少键。
本系统的工作流程:1)系统启动后,系统按程序给定的时间工作,即东西向通行60秒,南北向通行40秒,黄灯亮4秒,工作模式如表1所示。
首先东西向通行,然后南北向通行,如此循环。
2)通行时间的设置:当需要更改主、次干道的通行时间时,可以用设置键、增加键、减少键”进行设置。
第一次按“设置键”时,东西向的绿灯亮,东西向的LED数码管显示当前东西向的通行时间,并且按每秒3次的频率闪烁(每秒钟亮3次暗3次),其余的信号指示灯和南北向的LED数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向的通行时间,每按一次键,数码管的显示时间增加1秒或减少1秒,长按键(按下的时间超过1秒钟以上),则数码管显示的时间按每秒钟增加或减少10的速度快速变化。
第二次按“设置键”时,东西向的黄灯亮,东西向的数码管显示当前东西向黄灯的点亮时间,并且按每秒3次的频率闪烁,其余的信号指示灯和南北向的数码管熄灭,此时可以用“增加键”和“减少键”来改变东西向黄灯的点亮时间。
第三次按“设置键”时,南北向的绿灯亮,南北向的数码管显示当前南北向绿灯的通行时间,并且按每秒3次的频率闪烁,其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向绿灯的通行时间。
第四次按“设置键”时,南北向的黄灯亮,南北向的数码管显示当前南北向黄灯的点亮时间,并且按每秒3次的频率闪烁,其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向黄灯的点亮时间。
第五次按“设置键”时,系统退出设置状态,回到交通信号灯状态,并且东西向先通行,南北向后通行软件设计:采用KeilC开发环境与语言1)软件模块:根据上述工作流程和设计要求,软件设计可以分为以下几个功能模块:主程序:初始化及键盘监控。
计时程序模块:为定时器的中断服务子程序。
显示程序模块:完成12个发光二极管和4个LED数码管的显示驱动。
键盘扫描程序模块:判断是否有键按下,并求取键号。
键处理程序模块:分别是“设置键”、“增加键”、“减少键”的处理子程序。
1
文档内容包括:1.系统工作流程—活动图2.用例图及对应用例描述3.每个用例的顺序图4.状态图5.类图6.该系统的组件图与部署图7.对应的代码实现:8.持久类类图及关系模型
2025/4/7 3:21:45 535KB UML作业文档附
1
DeepLearningToolbox™提供了一个框架,用于设计和实现具有算法,预训练模型和应用程序的深度神经网络。
您可以使用卷积神经网络(ConvNets,CNN)和长期短期记忆(LSTM)网络对图像,时间序列和文本数据进行分类和回归。
应用程序和图表可帮助您可视化激活,编辑网络体系结构以及监控培训进度。
对于小型训练集,您可以使用预训练的深层网络模型(包括SqueezeNet,Inception-v3,ResNet-101,GoogLeNet和VGG-19)以及从TensorFlow™-Keras和Caffe导入的模型执行传输学习。
了解深度学习工具箱的基础知识深度学习图像从头开始训练卷积神经网络或使用预训练网络快速学习新任务使用时间序列,序列和文本进行深度学习为时间序列分类,回归和预测任务创建和训练网络深度学习调整和可视化绘制培训进度,评估准确性,进行预测,调整培训选项以及可视化网络学习的功能并行和云中的深度学习通过本地或云中的多个GPU扩展深度学习,并以交互方式或批量作业培训多个网络深度学习应用通过计算机视觉,图像处理,自动驾驶,信号和音频扩展深度学习工作流程深度学习导入,导出和自定义导入和导出网络,定义自定义深度学习图层以及自定义数据存储深度学习代码生成生成MATLAB代码或CUDA®和C++代码和部署深学习网络函数逼近和聚类使用浅层神经网络执行回归,分类和聚类时间序列和控制系统基于浅网络的模型非线性动态系统;使用顺序数据进行预测。
2025/3/29 11:02:30 14.06MB deep l matlab 深度学习
1
firenze.js面向node.js和浏览器的基于数据库不可知适配器的对象关系映射器(ORM)。
请访问以获得文档。
主要特点基于数据库不可知适配器的体系结构直观查询构建器迁移API(具有回滚功能)具有行为模式的集合和模型高度可扩展基于承诺的工作流程强大而灵活的验证系统CLI支持支持的适配器的事务API占用空间约40kB的缩小文件该项目仍在积极开发中,预计将来的发行版中将包含更多功能。
安装使用:$npminstall--savefirenze或:$bowerinstall--savefirenze可用的适配器(仅适用于浏览器)(在节点和浏览器中均可工作)支持v0.2.x:可用行为测验测试是用编写的,可以通过npm运行:$npmtest谢谢如果没有其他项目可以启发,那么该项目就不可能实现。
非常感谢这些直接或间接帮助实现了这些开源项目:和执照麻省理工学院:copyright:
2025/3/17 2:40:32 306KB nodejs javascript mysql sql
1
外星人入侵这是在移动HTML5游戏开发的前三章中构建的示例游戏。
它根据GPL和MIT许可发布,以实现您的意愿。
可播放的版本::移动版Bit.ly链接::如果您对游戏进行了有趣的改进或改进,请告诉我,它将链接到此处。
该原始存储库将保持与本书中的代码匹配。
有关更多资源,请参见:
2025/3/15 9:30:22 72KB JavaScript
1
共 119 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡