单点登陆singlesignon(sso)
自动登录:
用户在通过浏览器登录某一站点后,在以后的规定时间内访问该站点将自动完成登
录。
通过cookie的方式将客记信息保存在客户机上
在android应用中也可以采取此种方式,在发起http请求的时候带cookie信息
自动登录的实现原理:
在相同域名的情况下:
采用cookie的方式domain=域名
在不同域名的情况下:
中央认证服务器:
cas(centrolauthenticationservice)
服务器端下载地址:http://downloads.jasig.org/cas/
客户端下载地址:http://www.jasig.org/cas/download
使用keytool创建证书:
keytool-genkey-aliastest-keyalgRSA-keystored:/keys/testkey
域名:可以在C:\WINDOWS\system32\drivers\etc\host文件中添加
127.0.0.1cn.yue.com
导出证书:
keytool-export-filed:/keys/test.crt-aliastest-keystored:/keys/testkey
为客户端的JVM导入证书
keytool-import-keystoreC:\Java\jdk1.6.0_10\jre\lib\security\cacerts-fileD:/keys/test.crt-aliastest
C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore
如果提示:
keytool工具java.io.IOException:Keystorewastamperedwith,orpasswordwasincorrect异常的解决办法
可以输入:changeit这处密码
方式二生成证书文件;
keytool-genkey-aliastomcat-keyalgRSA-keystoreC:\Tomcat\GMAE3.0Tomcat\tomcat.keystore
应用证书到web服务器:
<Connectorport="8443"protocol="HTTP/1.1"sslenabled="true"
maxthreads="150"scheme="https"secure="true"
clientauth="false"sslprotocol="TLS"
keystorefile="C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore"keystorepass="密码"/>
下面是服务器的配置:
F:\小工具\javaweb\单点登陆\cas-server-3.5.0-release\cas-server-3.5.0\modules目录下的
cas-server-webapp-3.5.0.war文件放到tomcat\webapps下
用浏览器访问
https://cn.yue.com:8443/cas/login
默认密码:andmin/admin
读取数据库信息验证
修改:deployerConfigContext.xml
在目录:C:\Java\apache-tomcat-6.0.35\webapps\cas\WEB-INF
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler"/>
以上语句只是简单的检查用户名和密码
修改为:
<!--QueryDatabaseAuthenticationHandler提供一个查询接口-->
<beanclass="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<propertyname="dataSource"ref="dataSource"></property>
<propertyname="sql"value="selectpasswordfromtest_userwherelogin_name=?"></property>
<propertyname="passwordEncoder"ref="MD5PasswordEncoder"></property>
</bean>
在最后添加:
<!--adddataSource-->
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<propertyname="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<propertyname="url"><value>jdbc:mysql:///test</value></property>
<propertyname="username"><value>root</value></property>
<propertyname="password"><value>root</value></property>
</bean>
<beanid="MD5PasswordEncoder"class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-argindex="0">
<value>MD5</value>
</constructor-arg>
</bean>
添加cas-server-support-jdbc-3.5.0.jar和mysql驱动包到C:\Java\apache-tomcat-6.0.35\webapps\cas\WEB-INF\lib
创建用户表
CREATETABLE`test_user`(
`id`bigint(20)NOTNULLauto_increment,
`email`varchar(255)defaultNULL,
`login_name`varchar(255)NOTNULL,
`name`varchar(255)defaultNULL,
`password`varchar(255)defaultNULL,
PRIMARYKEY(`id`),
UNIQUEKEY`login_name`(`login_name`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8
相关推荐
CAS整合LDAP实现单点登录学习笔记 包含所有过程。
中央认证服务(Central Authentication Service,简称CAS)是一个广泛使用的企业级单点登录(Single Sign-On,简称SSO)解决方案,最初由耶鲁大学的Ja-SIG社区开发。其主要功能是允许用户使用单一的登录凭证访问多个...
这篇名为"CAS单点登录学习笔记五之CAS服务器数据源"的博客文章,很可能是作者对CAS服务器配置数据源部分的深入解析。数据源是应用程序连接和操作数据库的关键组件,对于CAS服务器来说,它用于存储和管理用户的认证...
单点登录(Single Sign-On, SSO)是一种网络身份验证技术,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。CAS(Central Authentication Service)是基于Java的开源SSO协议实现,由JA-SIG...
本“C语言学习笔记”将以上知识点逐一展开,通过实例解析和练习题,帮助读者逐步构建扎实的C语言基础。无论你是初学者还是有经验的开发者,都能从中受益。请解压文件,仔细阅读,祝你在C语言的学习旅程中收获满满。
CAS整合LDAP实现单点登录的原理及部署学习笔记,cas实现单点登录,ldap负责账户管理
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。
**J2EE学习笔记概述** J2EE(Java 2 Platform, Enterprise Edition)是一个由Sun Microsystems(现已被Oracle收购)开发的平台,主要用于构建企业级的分布式应用系统。它提供了服务器端组件模型、服务和API,支持...
根据提供的信息,我们可以总结出这份文档是关于Go语言学习笔记的部分内容,主要涵盖了Go语言的基础概念、语法结构、数据类型以及并发模型等关键知识点。以下是对这些知识点的详细解析: ### Go语言概述 Go(也称作...
Go语言,又称Golang,是一种静态类型的编程语言,由Google开发,于2007年首次对外公布,并在2009年进行了...通过本学习笔记的内容,我们可以对Go语言有一个全面而系统的认识,为深入学习和应用Go语言打下坚实的基础。
吴恩达深度学习笔记(1)+作业.pdf介绍了神经网络的基本概念,包括神经网络的定义、单神经网络、复杂神经网络、神经网络的实现过程等。 2. 深度学习概论 吴恩达深度学习笔记(1)+作业.pdf讲解了深度学习的概论,...
### C++ 学习笔记精华版 #### 一、C++ 语言概述 **1、历史背景** - **C++ 的江湖地位** - Java、C、C++、Python、C# 是当前主流的编程语言之一,而 C++ 在这些语言中以其高效性和灵活性著称。 - **C++ 之父 ...
Perl是一种强大的脚本编程语言,...以上就是Perl学习笔记中涵盖的一些基础概念和操作。继续深入学习,你将能够编写更复杂的Perl脚本,解决各种实际问题。记得实践是学习编程的关键,多做练习,逐步提升你的Perl技能。
Go语言学习笔记的知识点涵盖广泛,它从基础的语法到高级的并发编程,再到源码的剖析,全面介绍了Go语言的特点和编程技巧。以下是根据所提供的文件内容提取的知识点: 1. Go语言基础:Go是一种静态类型编程语言,...
在OA项目学习笔记中,我们可以探讨以下几个关键知识点: 1. **OA系统概述**:OA系统通常包括工作流管理、文档管理、协同办公、信息门户、报表统计等功能模块。理解这些模块及其相互作用对于OA项目的规划至关重要。 ...
"Sketchup 8.0学习笔记" Sketchup 8.0是一个功能强大且灵活的3D模型设计软件,本笔记记录了Sketchup 8.0的基础操作和技巧,旨在帮助初学者快速掌握Sketchup 8.0的使用。 视图操作: 1. 环绕观察:点击环绕观察...
Spring框架是Java开发中广泛应用的轻量级...这份"Spring框架学习笔记"会深入探讨以上各个知识点,通过PDF文档的形式,提供详细的讲解和实例,对于想要深入了解和学习Spring框架的人来说,无疑是一份实用的学习资源。