- 浏览: 1284944 次
- 性别:
- 来自: 常州
-
文章分类
- 全部博客 (499)
- java (101)
- linux (82)
- mysql (30)
- javascript (45)
- Oracle (12)
- ext (14)
- 虚拟机 (1)
- 搜索引擎 (2)
- struts2 (11)
- 设计模式 (9)
- nginx (17)
- tomcat (12)
- 随想 (10)
- spring (18)
- svn (1)
- flash (3)
- UML (1)
- 数据结构 (7)
- 算法 (2)
- 网摘 (9)
- 数据库 (15)
- ibatis (3)
- jquery (31)
- lucene (1)
- hibernate (14)
- Myeclipse (4)
- 线程 (7)
- jbpm (4)
- 重构 (1)
- mantis (3)
- MediaWiki (4)
- ExtMail (1)
- MDaemon (1)
- egit (1)
- dwr (7)
- sitemesh (2)
- mybatis (1)
- ico (1)
- hadoop (5)
- jsoup (1)
- urlrewrite (2)
- jstl (1)
- spring3 (2)
- aop (2)
- 定时器 (1)
- Quartz (2)
- apache (1)
- php (1)
- security (1)
- iptables (2)
- QQ (1)
- mysqldump (1)
- vim (1)
- memcached (4)
- jad (1)
- 微博 (1)
- html5 (1)
- css3 (1)
- httpclient (10)
- google (1)
- shortUrl (1)
- json (2)
- virtualBox (1)
- mantisBT (2)
- htmlunit (1)
- selenium (2)
- mail (1)
- 正则表达式 (4)
- html (3)
- css (2)
- jatoolsPrinter (1)
- 图片处理 (1)
- hql (1)
- webservice (1)
- 分词 (3)
- 短信 (1)
- VPS (1)
- 事务 (1)
- 广告 (1)
- 画廊 (1)
- git (3)
- github (1)
- openshift (1)
- 缓存 (1)
- web (3)
- android (3)
- c3p0 (1)
- 邮箱 (1)
- memcache (2)
- windows (2)
- js (14)
- 编辑器 (1)
- 打印 (1)
- centos (5)
- boneCP (1)
- 连接池 (1)
- sql (1)
- nosql (1)
- MongoDB (1)
- 浏览器 (1)
- node (1)
- node.js (1)
- backbone.js (1)
- lazyload (1)
- Switch Off (1)
- Titanium (1)
- 网站架构 (1)
- WebDriver (1)
- APJP (1)
- 代理 (1)
- comet (1)
- kendoui (1)
- UI (2)
- 互联网 (1)
- localStorage (1)
- 记录 (1)
- 微信 (2)
- Sphinx (1)
- netty (1)
- js,mvvm,Avalon (1)
- 安卓 (1)
- Tengine (1)
- 大数据 (1)
- 手机 (1)
- paypal (1)
- SaaS (1)
- gitlab (1)
- nodejs (1)
- React (1)
- shadowsocks (0)
- vpn (0)
- 验证码 (1)
- SSL (2)
- SEO (1)
- IntelliJ (1)
- 敏捷开发 (1)
- 项目管理 (1)
- 爬虫 (1)
- 正则 (1)
- owncloud (1)
- 云存储 (1)
- ajax (1)
- pjax (1)
- jdk (1)
- zookeeper (1)
- phantomjs (1)
- ELK (1)
- springcloud (1)
- IDEA (1)
- hexo (1)
- ss (1)
- letencrypt (1)
最新评论
-
peakandyuri:
这个是有BUG的,数字小体现不出来,数字大了就不对了,但是Ja ...
java十进制转换N进制并反转换的工具类 -
ginolai:
然后是相关配置:/etc/sysconfig/iptables ...
Linux中iptables设置详细 -
bzhao:
我测试没啥区别啊!
Thread.sleep()和Thread.currentThread().sleep()区别 -
zhl549342097:
match == false
Spring Security 3.1 中功能强大的加密工具 PasswordEncoder -
hellotieye:
renzhengzhi 写道drager 写道用jsoup后解 ...
jsoup select 选择器
CAS SSO 例子 笔记 (原创-梁健)
先说写心情一下:
去年在第一家公司做的那个项目使用是CAS SSO单点登录,但是由于不是我做的那块,所以一直没有太深入的研究,这段日子比较闲,从新学习一下CAS SSO单点登录吧,门户网站等大型网站都会用的到的,所以这的确是个不可缺少的技术。这两天在配置CAS SSO的时候遇到了很多的问题,虽然有过无助,但坚持一下别放弃,最终总会弄成功的!
-------------------------------------------------------------------------------------------------------------------------------
列一列遇到问题的过程:
先是:Tomcat配置完https后,启动报错。
然后就是:正常启动,但是无法跳转到CAS登录页面,也无法以https访问。
再就是:可以正常跳转到CAS的登录页面,但点击登录后,跳转到成功页面的时候报500错误,说没有导入证书。
-------------------------------------------------------------------------------------------------------------------------------
网上找了好多的资料,但是几乎都配置不成功,不是缺这个就是少那个。这里我就写写我的笔记,绝对保证你能够配置成功!好了,心情就说到这吧,总之成功的那一刻心情是很爽的。
转载请注明出处:http://liangjian103.iteye.com/blog/1129056
需要介质
1、 客户端介质cas-client-2.0.11.zip
2、 服务端介质cas-server-3.4.8-release.zip
3、 Tomcat6.0
4、 jdk1.5.0_12
下载地址:
http://downloads.jasig.org/cas-clients/
http://downloads.jasig.org/cas/
将cas-server-3.4.8-release.zip\cas-server-3.4.8\modules下的cas-server-webapp-3.4.8.war拷贝到Tomcat的webapp目录下,重命名为cas.war
一、服务端配置(以下配置我已经写了批处理。):
修改Tomcat的密码为:changeit,因为下面统一都用的这个密码。
tomcat-users.xml
<user username="admin" password="changeit" roles="admin,manager"/>
由于CAS只能识别域名,所以只能修改C:\WINDOWS\system32\drivers\etc\hosts,加入:127.0.0.1 sso.tomcat.com
由于以下我使用批处理实现,也就不需要一步步的回车设置证书的信息了:
服务端凭证要配置域名 例如:CN=sso.tomcat.com 此处为hosts中配置的。这个名字要与下面配置客户端的web.xml中的过滤器里写到的一致,下面会再做解释。
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_12
set TOMCAT_HOME=D:\Program Files\Apache Software Foundation\Tomcat 6.0
set SERVER_DN="CN=sso.tomcat.com, OU=share, O=share, L=sz, S=gd, C=CN"
set KS_PASS=-storepass changeit
keytool -delete -alias tomcat -file client.cert %KS_PASS% -keystore server.keystore
keytool -delete -alias tomcat1 -trustcacerts -file client.cert %KS_PASS% -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -keypass changeit
keytool -genkey -alias tomcat -keyalg RSA -keystore server.keystore -dname %SERVER_DN% %KS_PASS% -keypass changeit
keytool -export -alias tomcat -file client.cert %KS_PASS% -keystore server.keystore
keytool -import -alias tomcat1 -trustcacerts -file client.cert %KS_PASS% -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -keypass changeit -noprompt
mkdir "%TOMCAT_HOME%\keystore\"
copy server.keystore "%TOMCAT_HOME%\keystore\"
@echo off
echo "-----------------------------------------------------------"
echo 请配置%TOMCAT_HOME%\conf\server.xml文件。
echo "<Connector protocol=org.apache.coyote.http11.Http11NioProtocol"
echo "port=8443 minSpareThreads=5 maxSpareThreads=75"
echo "enableLookups=true disableUploadTimeout=true"
echo "acceptCount=100 maxThreads=200"
echo "scheme=https secure=true SSLEnabled=true"
echo "clientAuth=false sslProtocol=TLS"
echo "keystoreFile=keystore/server.keystore keystorePass=changeit"
echo "/>"
echo 当前JAVA_HOME=C:\Program Files\Java\jdk1.5.0_12
echo 当前TOMCAT_HOME=D:\Program Files\Apache Software Foundation\Tomcat 6.0
echo 证书位置:%TOMCAT_HOME%\keystore\server.keystore
echo 以上为CAS服务端的配置。接下来配置SSO客户端。
echo "-----------------------------------------------------------"
color 3
echo. && pause
保存为:生成证书配置.bat,双击执行。
修改Tomcat 6.0\conf\server.xml文件:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="keystore/server.keystore" keystorePass="changeit"
/>
这个配置也是困扰我好长时间,但最终测试通过了的。
这里需要注意,这个分别为证书的路径和密码,keystore/server.keystore这个目录和文件会在上面的批处理中创建,密码默认为:"changeit"
keystoreFile="keystore/server.keystore" keystorePass="changeit"
二、客户端配置:
在你的应用中,修改web.xml文件,加入SSO过滤器
<!-- SSO-Start -->
<filter>
<filter-name>CAS Filter</filter-name>
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://sso.tomcat.com:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://sso.tomcat.com:8443/cas/proxyValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>192.168.9.203:8080</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>*.htm</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<!-- SSO-END -->
启动Tomcat服务,访问一下你SSO过滤的页面便可以跳转到CAS的登录页面。登录成功后,会自动跳转到目标页面。如果A应用和B应用都加入了SSO过滤器,这样,他们就都会跳转到CAS认证服务器去登录,当其中一个应用在CAS上登录后,另一个应用则会自动登录。
----------------------------------------------------------
以下是本人总结的思路:
1、用户访问需要登录的页面时,跳转到登录域进行登录。
2、登录完毕后,带着登录成功的token(这个token可以是任何能唯一标识一个登录用户的东西,比如uuid,通过url参数传递,因为这样才能跨域)返回原来的页面。
3、原来的页面通过url取到这个token之后,去数据源中验证这个token是否合法,如果合法那么接下来跟普通登录一样设置cookie、session等各种登录状态就行了。
PS:附件是工程实例
- CAS_SSO单点登录-例子.rar (3.1 MB)
- 下载次数: 18
发表评论
-
[转]Spring Cloud微服务的那点事
2018-04-20 21:58 698转自:https://blog.csdn.ne ... -
[转]ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
2018-04-20 17:10 903本文转自:https://my.oschin ... -
生成无重复的hashid短地址(短随机字符串)
2017-04-26 14:57 2229具体查看项目: http://hashids.org/j ... -
2017年Struts漏洞修复:版本从2.3.15.1升级到2.3.32
2017-03-24 15:10 2040如果你当前的项目使用了Struts2.3.5至 Strut ... -
多线程爬虫Miner [转]
2016-08-01 13:49 857多线程爬虫Miner 本文转自原作者博客:http:/ ... -
JAVA关键字替换
2015-11-03 21:22 1074import java.util.ArrayList; ... -
关于java web前后端分离
2015-08-27 22:47 1957由于公司架构上需要前后端分离,这里先记录一下相关内容,待后 ... -
基于NODEJS的前后端项目分离实践
2015-06-17 14:07 1215前后端分离项目实践 本文转自:http://jiangxi ... -
paypal IPN返回
2015-05-28 10:12 20901.设定返回的地址 目标:登录paypal-->用户 ... -
根据class搜索jar包
2015-05-20 13:00 910http://grepcode.com/ -
基于DWR的点对点聊天实现 server---client
2015-04-28 16:53 1198本文转自:http://htj1231825.iteye.c ... -
Java分布式中文分词组件word分词v1.2发布
2015-04-20 12:07 825word分词是一个Java实现的分布式的中文分词组件,提供了 ... -
java开源论坛jeebbsV4发布
2015-04-08 09:56 637论坛APP的帖子新展现形式 APP即时聊天模块 ... -
开源大数据解决方案
2015-03-12 13:01 1094解决方案 开发商 类型 描述 Storm Twit ... -
根据用户IP查询所属国家(数据库版)-geoip
2015-03-06 14:44 1215关键词:geoip,最新版本GeoIP2 http:// ... -
查询用户IP所在地服务接口(淘宝)
2015-03-04 10:17 1097import java.io.BufferedReader; ... -
java内存溢出优化
2014-12-28 12:42 2236本文转自:http://www.importnew.com ... -
Tomcat6线程池(Executor Thread pool)的配置
2014-12-27 01:07 941原文地址:http://www.java2000.net/p ... -
Netty学习系列导航-开源Java高性能NIO框架推荐
2014-08-13 17:49 1382纯记录,事件驱动服务器和客户端设计: http://mus ... -
破解验证码相关:用imagemagick和tesseract-ocr破解简单验证码
2014-08-13 17:08 2976本文源自:http://hooopo.iteye.com/ ...
相关推荐
[置顶] SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) http://blog.csdn.net/ae6623/article/details/8851801 [置顶] SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas...
spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次 ## 系统模块说明 1. cas: 单点登录模块,这里直接拿的是cas的项目改了点样式而已 2. doc: 文档目录,里面有数据库生成语句,采用的...
本课程主要通过CAS来实现SSO,本教程会从最基本的基础知识讲起,由浅入深再到实战,完成多应用的单点登录功能。 本课程内容如下: 1、 什么是SSO和CAS 2、 CAS Server服务端和客户端的搭建和配置 3、 单点登录和单...
Weblogic 使用 YALE CAS 实现 SSO 单点登录的方法 一、Yale CAS 简介 Yale CAS 是耶鲁大学开发的一种开源的单点登录(SSO)解决方案,提供了一个通用的身份验证框架,允许用户使用单个身份验证来访问多个应用程序。...
CAS(Central Authentication Service)是 Yale 大学发起的一个开源项目,它提供了一种在Web 应用中统一处理用户认证的解决方案,被称为单点登录(Single Sign-On,简称SSO)。SSO允许用户在一个系统中登录后,无须...
### CAS单点登录(SSO)教程详解 #### 前言 随着企业信息化建设的不断发展,用户需要在多个系统之间切换并重复登录的情况越来越常见,这不仅降低了用户体验,还增加了管理成本。为了解决这一问题,单点登录(Single ...
通过"SSO之CAS单点登录实例演示",我们可以实践这些步骤,了解如何设置和运行一个基本的CAS环境,进一步理解SSO的工作原理和实际应用。这个实例将帮助我们更好地掌握如何为自己的应用实现SSO功能,提升系统的安全性...
总的来说,CAS-server SSO服务端是一个强大的工具,它为企业提供了一种高效、安全的单点登录解决方案。理解其工作原理和配置方法对于构建和维护一个统一的认证环境至关重要。通过深入学习和实践,我们可以利用"cas-...
在用户访问其他关联应用时,如果TGC有效且未过期,CASServer将直接使用TGC进行认证,从而实现了单点登录的功能。若TGC过期或无效,则用户需要重新进行认证过程。 #### CAS服务器接口配置 为了实现CAS单点登录,...
CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,简称SSO)框架,主要用于解决网络应用中的身份验证问题。本压缩包提供了CAS服务端自定义认证的实现,以及CAS客户端的配置...
SSO(Single Sign-On)是单点登录的缩写,是一种网络用户身份验证的机制,允许用户在一次登录后访问多个应用系统而无需再次验证。CAS(Central Authentication Service)是SSO的一种实现,由耶鲁大学开发并开源,它...
### SSO单点登录原理及CAS Server配置详解 #### 一、SSO简介 SSO(Single Sign-On,单点登录)是身份管理领域的重要组成部分,它允许用户在一个应用程序中进行一次身份验证后,无需再次登录即可访问同一组织内其他...
【CAS_SSO单点登录实例详细步骤】 单点登录(Single Sign-On,简称SSO)是一种网络认证机制,允许用户在一个应用系统中登录后,无需再次输入凭证即可访问多个相互信任的应用系统。CAS(Central Authentication ...
Java单点登录(Single Sign-On,SSO)是一种网络访问控制机制,允许用户在一次登录后,无需再次认证即可访问多个应用系统。SSO的核心思想是:用户只需要在一个可信的身份认证中心(Identity Provider,IdP)进行身份...
综上所述,SSO之CAS单点登录提供了一种高效、安全的身份验证解决方案,简化了用户访问多应用的流程,同时也便于管理员管理和监控用户行为。对于大型组织,采用CAS进行SSO集成可以显著提升用户体验并加强信息安全。在...
CAS(Central Authentication Service)服务器是一种基于Java的开源单点登录(Single Sign-On,简称SSO)框架,旨在简化用户在多个应用系统之间的身份验证过程。SSO允许用户在一个地方进行登录,然后在整个会话期间...
CAS(Central Authentication Service)是基于Java的开源身份验证框架,主要功能是实现单点登录(Single Sign-On,简称SSO)。SSO允许用户通过一次登录,就能访问多个应用系统,无需再次输入凭证,大大提升了用户...
现在,可以登录iTop,使用CAS单点登录框架来验证用户身份。 常见问题 在实现iTop与CAS集成时,可能会遇到一些问题,例如CAS Server未部署完成、iTop配置文件修改错误等。为了避免这些问题,可以按照上述步骤逐步...
单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统或应用中登录后,无需再次输入凭证即可访问其他相互信任的系统或应用。它简化了用户管理和提升了用户体验,同时减少了密码管理的...