http://blog.chinaunix.net/uid-28380443-id-4740103.html

自己负责的公司基于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

得到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的流程给出来:
initialFlowSetupAction
ticketGrantingTicketCheck 判断是否已登录,有无已登录票据
gatewayRequestCheck //外来service
serviceAuthorizationCheck 判断外来访问还是直接访问cas
generateLoginTicket 生成访问票据
viewLoginForm 进入登录页面
realSubmit 提交
sendTicketGrantingTicket 发送访问票据
serviceCheck 判断跳转类型
generateServiceTicket 将票据放入response

  先把这个流程里出来在进行后期的开发效率会很高。所谓各种的ticket跟tcp的握手差不多,类比着很好想。
(3)引入restful,会发现世界瞬间美好了,很多之前你想到的然后去系统各种抽取的东西都可以通过它来做,
直接看cas官网,或者http://stackoverflow.com/questions/22625368/working-java-rest-client-example-to-access-cas-rest-api这篇帖子即可。

  org.jasig.cas
cas-server-integration-restlet
${cas.version}
runtime org.springframework
spring-webmvc org.springframework
spring-context org.springframework
spring-core restlet
org.restlet.ext.spring.RestletFrameworkServlet
1 restlet
/v1/*

  (4)开放用户数据的远程调用接口,然后打包给客户端调用。
over~

CAS SSO:如何查看并删除JRE信任库中的证书

作者:admin   发布:2012-04-08 19:05   分类:Java   阅读:1,367 次   抢沙发  
 

查看信任库中已有的证书

1 C:\Java\jdk1.6.0_27\bin>keytool -list -v -keystore "C:\Java\jre6\lib\security\cacerts"

根据证书别名删除已有的证书

1 C:\Java\jdk1.6.0_27\bin>keytool -delete -trustcacerts -alias tomcat_client -keystore "C:\Java\jre6\lib\security\cacerts"

SSO之CAS备忘的更多相关文章

  1. GIS部分理论知识备忘随笔

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.高斯克吕格投影带换算 某坐标的经度为112度,其投影的6度带和3度带 ...

  2. python序列,字典备忘

    初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...

  3. Vi命令备忘

    备忘 Ctrl+u:向文件首翻半屏: Ctrl+d:向文件尾翻半屏: Ctrl+f:向文件尾翻一屏: Ctrl+b:向文件首翻一屏: Esc:从编辑模式切换到命令模式: ZZ:命令模式下保存当前文件所 ...

  4. ExtJs4常用配置方法备忘

    viewport布局常用属性 new Ext.Viewport({ layout: "border", renderTo: Ext.getBody(), defaults: { b ...

  5. [备忘] Automatically reset Windows Update components

    这两天遇到Windows 10的更新问题,官方有一个小工具,可以用来修复Windows Update的问题,备忘如下 https://support.microsoft.com/en-us/kb/97 ...

  6. ECMAScript 5(ES5)中bind方法简介备忘

    一直以来对和this有关的东西模糊不清,譬如call.apply等等.这次看到一个和bind有关的笔试题,故记此文以备忘. bind和call以及apply一样,都是可以改变上下文的this指向的.不 ...

  7. SSO之CAS单点登录实例演示

    本文目录: 一.概述 二.演示环境 三.JDK安装配置 四.安全证书配置 五.部署CAS-Server相关的Tomcat 六.部署CAS-Client相关的Tomcat 七. 测试验证SSO 一.概述 ...

  8. MFC通过txt查找文件并进行复制-备忘

    MFC基于对话框的Demo txt中每行一个23位的卡号. 文件夹中包含以卡号命名的图像文件.(fpt或者bmp文件) 要求遍历文件夹,找到txt中卡号所对应的图像文件,并复制出来. VC6.0写的. ...

  9. php 相关模块备忘

    在安装php的时候,不管是编译安装: ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...

随机推荐

  1. linux 配置apache+subversion

    http://apr.apache.org/download.cgi http://subversion.tigris.org/servlets/ProjectDocumentList?folderI ...

  2. 面试题:实现LRUCache::Least Recently Used的缩写,意思是最近最少使用,它是一种Cache替换算法

    Design and implement a data structure for Least Recently Used (LRU) cache. It should support the fol ...

  3. [BUGFIX]__import_pywin32_system_module__

    import_pywin32_system_module 修复方法: 编辑 X:/Python27/Lib/site-packages/win32/lib/pywintypes.py 第114行 if ...

  4. qt 5 基础知识 2(控件篇)

    QVBoxLayout *lay = new QVBoxLayout(this); // 创建一个竖直的盒子 lebel 篇 lay->addWidget(label = new QLabel( ...

  5. loadView 与 ViewDidLoad

    每个ios开发者对loadView和viewDidLoad肯定都很熟悉,虽然这两个函数使用上真的是非常简单,但是和类似的initWithNibName/awakeFromNib/initWithCod ...

  6. iOS 图片填充 UIImageView

    UIViewContentModeScaleAspectFit,     //这个图片都会在view里面显示,并且比例不变  这就是说 如果图片和view的比例不一样 就会有留白如下图1 UIView ...

  7. centos系统使用技巧

    ===============================网络配置===============================1 eth0 接口配置:/etc/sysconfig/network ...

  8. Metasploit介绍

    Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估, 提供真正的安全风险情报.这些功能包括智能开发,密码审计 ...

  9. PHP 中的随机数——你觉得可靠么?

    本文主要分析以加密为目的的随机数生成问题.PHP 5 并未提供生成强加密随机数的简便机制,但是,PHP 7 引入了两个 CSPRNG 函数以解决该问题.系 OneAPM 工程师编译整理. 什么是 CS ...

  10. 【网络流24题】No.18 分配问题 (二分图最佳匹配 费用流|KM)

    [题意] 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为 cij . 试设计一个将n 件工作分配给 n 个人做的分配方案, 使产生的总效益最大. 输入文件示例input. ...