SSO之CAS备忘
来源:互联网 发布:阿里云服务器下载文件 编辑:程序博客网 时间:2024/05/21 03:20
自己负责的公司基于CAS单点登录平台架构已经上线运行,很多细节的东西是时候备忘一下了,开源的东西,具体需要记得倒不是很多,跟着debug看源码理解,学习为主。
首先说说整个框架的思路:由于这段时间连续上了几个项目,用户登录管理这一块一直在做重复的工作,所以考虑将这些模块抽出来单独做成一个系统。最初的想法只是做一个简单的用于登录检测方面的东西,想的也很简单,选memcached来做分布式缓存,但随着项目越写越大,又加入很多功能,早已不是最早的简单验证登录这么回事了,于是选用了cas来进行改造。
自己开发过程中的几个比较集中的阶段:
(1)
环境的搭建:重要集中在证书的生成和管理
先生成证书文件:
keytool -genkey -alias tomcat-server -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore(生成文件)
注意name是计算机的名字或者项目的域名,生成完了后自己开发过程中为了方便去host文件里将这个名字映射给本机
得到server.keystore,配置tomcat中的server.xml的ssl证书然后导出证书点击(此处)折叠或打开
- <Connector
- SSLEnabled="true"
- clientAuth="false"
- keystoreFile="G:/apache-tomcat-7.0.47/conf/server.keystore"
- keystorePass="changeit"
- maxThreads="150"
- port="8443"
- protocol="HTTP/1.1"
- scheme="https"
- secure="true"
- sslProtocol="TLS"
- truststoreFile="D:/JAVA/jdk7/jre/lib/security/cacerts"/>
假如和我一样,自己在开发中又本机又是服务器又是客户端,那么还需要将证书在导入进jdk中(不是说一定要导入jdk,但是最好是导入,因为jdk中还有大量的其他证书认证,后面会看到tomcat中会配置指向这个证书文件,如果只有该证书,sso跑起来没问题,但是如果有像支付宝之类的其他一些认证找不到的一些莫名其妙的错误)
keytool -export -alias tomcat-server -storepass changeit -file server.cer -keystore server.keystore
keytool -export -alias tomcat-server -storepass changeit -file server.cer -keystore server.keystore
得到server.cer,把自己当成客户端在导入证书
keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit
到这一步之后,就可以服务器和子系统双开做联调了。
(2)关于CAS的源码,要自定义的话需要先将cas的流程走一遍,cas server端采用的spring的webflow。一系列的配置加代码流程非常的清晰,最主要看login-webflow理清流程基本上就可以自己分析出一些开发中遇到的错误和问题了。顺便说一句cas修改源码基本是修改一个小的地方结果发现自己基本上把整个流程的代码都要重写,因为他的代码都不能继承,如果需要拷出来修改完了之后再修改配置文件的引用。所以很蛋疼,不过如果需要修改他的源码一般来说肯定是自己思路出问题了,或者说代码还没有理清楚,很多东西数据都可以从他的配置文件中找到对应的类然后抽取出来。
最后把login的流程给出来:
先把这个流程里出来在进行后期的开发效率会很高。所谓各种的ticket跟tcp的握手差不多,类比着很好想。
(3)引入restful,会发现世界瞬间美好了,很多之前你想到的然后去系统各种抽取的东西都可以通过它来做,
直接看cas官网,或者http://stackoverflow.com/questions/22625368/working-java-rest-client-example-to-access-cas-rest-api这篇帖子即可。
(4)开放用户数据的远程调用接口,然后打包给客户端调用。
over~
keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit
到这一步之后,就可以服务器和子系统双开做联调了。
(2)关于CAS的源码,要自定义的话需要先将cas的流程走一遍,cas server端采用的spring的webflow。一系列的配置加代码流程非常的清晰,最主要看login-webflow理清流程基本上就可以自己分析出一些开发中遇到的错误和问题了。顺便说一句cas修改源码基本是修改一个小的地方结果发现自己基本上把整个流程的代码都要重写,因为他的代码都不能继承,如果需要拷出来修改完了之后再修改配置文件的引用。所以很蛋疼,不过如果需要修改他的源码一般来说肯定是自己思路出问题了,或者说代码还没有理清楚,很多东西数据都可以从他的配置文件中找到对应的类然后抽取出来。
最后把login的流程给出来:
点击(此处)折叠或打开
- initialFlowSetupAction
- ticketGrantingTicketCheck 判断是否已登录,有无已登录票据
- gatewayRequestCheck //外来service
- serviceAuthorizationCheck 判断外来访问还是直接访问cas
- generateLoginTicket 生成访问票据
- viewLoginForm 进入登录页面
- realSubmit 提交
- sendTicketGrantingTicket 发送访问票据
- serviceCheck 判断跳转类型
- generateServiceTicket 将票据放入response
(3)引入restful,会发现世界瞬间美好了,很多之前你想到的然后去系统各种抽取的东西都可以通过它来做,
直接看cas官网,或者http://stackoverflow.com/questions/22625368/working-java-rest-client-example-to-access-cas-rest-api这篇帖子即可。
<dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-integration-restlet</artifactId> <version>${cas.version}</version> <scope>runtime</scope> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> </exclusions> </dependency>
<servlet> <servlet-name>restlet</servlet-name> <servlet-class>org.restlet.ext.spring.RestletFrameworkServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>restlet</servlet-name> <url-pattern>/v1/*</url-pattern> </servlet-mapping>
over~
0
上一篇:Linux访问Windows共享文件夹
下一篇:spring + maven + cxf
相关热门文章
- 欢迎cck114在ChinaUnix博客安...
- 欢迎XQH520在ChinaUnix博客安...
- 欢迎fzxy7788在ChinaUnix博客...
- 欢迎blog_tw在ChinaUnix博客安...
- 欢迎aiguocc在ChinaUnix博客安...
- JDK1.6官方下载_JDK6官方下载_...
- MyEclipse6.5下载及注册码...
- Eclipse 插件安装、升级和卸载...
- Eclipse+MyEclipse的配置
- java.net.BindException: Addr...
- 谁能够帮我解决LINUX 2.6 10...
- 现在的博客积分不会更新了吗?...
- shell怎么读取网页内容...
- ssh等待连接的超时问题...
- curl: (56) Recv failure: Con...
给主人留下些什么吧!~~
评论热议
0 0
- SSO之CAS备忘
- java SSO 之Cas 笔记
- cas sso
- 单点登录(SSO)入门第二篇--SSO之实现CAS
- 单点登录(SSO)入门第二篇--SSO之实现CAS
- SSO之CAS单点登录实例演示
- SSO之CAS单点登录实例演示
- (一)SSO之CAS框架通俗原理
- SSO 之CAS单点登录笔记
- 【SSO】--CAS单点登录之抽丝剥茧
- SSO之CAS单点登录实例演示
- SSO之CAS单点登录实例演示
- SSO之CAS单点登录部署
- SSO之CAS单点登录实例演示
- SSO之CAS单点登录实例演示
- SSO之CAS单点登录实例演示
- SSO之CAS单点登录实例演示
- SSO之CAS单点登录报错
- Memcached入门--1.服务器端部署安装
- Memcached入门--2.java客户端
- dereferencing pointer to incomplete type
- 原来做了这么多年狗
- Linux访问Windows共享文件夹
- SSO之CAS备忘
- spring + maven + cxf
- maven必用插件 tomcat热部署 以及 指定jdk版本
- web项目测试环境
- asp.net WebForm 前台获取后台c#代码信息
- mysql连表查询之left join on / right join on / inner&nb
- sqlmap tamper绕过WAF
- Java 中的多态和动态绑定
- 【pingce360】传小米平板MIPAD采用MTK8125四核 或售999元
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
铁山森林公园
铁山靠
铁山寺
铁山坪一日游攻略
苏铁山
铁山坪
中铁山桥集团有限公司
中铁山桥
铁山区
老铁山
铁山坪石油宾馆
铁山坪农家乐团购
包销
房地产包销
包销是什么意思
房地产包销是什么意思
农村包销路的加工厂
包销和代销的区别
解析包错误
解析包错误怎么解决
程序包解析错误是怎么回事
解析程序包时出现错误
解析包时出现错误
手机安装软件解析包错误
包阳台多少钱一平方
客厅阳台打通包门套好不好看
阳台包窗
断桥铝包阳台价格
阳台窗台石包边效果图
包阳台用什么材料好
阳台包口
包阳台
陆羽帆
南晨陆羽帆
陆羽憾作品
陆政羽成功告白张领领
我们约会吧陆政羽
陆自衡冉羽全文阅读
七零小当家 陆羽憾
情钟女主陆羽荣啸
包面