手把手教你利用CAS实现单点登录

手把手教你利用CAS实现单点登录
手把手教你利用CAS实现单点登录

综合业务系统单点登录(SSO)解决方案

一.SSO(Single Sign-on)原理

SSO 分为Web-SSO和桌面SSO。桌面SSO 体现在操作系统级别上。Web-SSO体现在客户端,主要特点是:SSO 应用之间使用Web 协议( 如HTTPS) ,并且只有一个登录入口。我们所讲的SSO,指Web SSO 。

SSO 的体系中,有下面三种角色:

?User(多个)

?Web应用(多个)

?SSO认证中心(一个)

SSO 实现包含以下三个原则:

●所有的登录都在 SSO 认证中心进行。

●SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的

用户。

●SSO 认证中心和所有的 Web 应用建立一种信任关系。

二.CAS 的基本原理

CAS(Central Authentication Service) 是Yale 大学发起的构建Web SSO 的Java开源项目。

1.CAS术语解释

SSO-Single Sign On,单点登录

TGT-Ticket Granting Ticket,用户身份认证凭证票据

ST-Service Ticket,服务许可凭证票据

TGC-Ticket Granting Cookie,存放用户身份认证凭证票据的cookie

2.CAS 的结构体系

◆CAS Server

CAS Server 负责完成对用户信息的认证,需要单独部署,CAS Server 会处理用户名/ 密码等凭证(Credentials) 。

◆CAS Client

CAS Client部署在客户端,当有对本地Web 应用受保护资源的访问请求,并且需要对请求方进行身份认证,重定向到CAS Server 进行认证。

3.CAS 协议

基础协议

上图是一个基础的CAS 协议,CAS Client 以过滤器的方式保护Web 应用的受保护资源,过滤从客户端过来的每一个Web 请求,同时,CAS Client 会分析HTTP 请求中是否包请求Service Ticket( 上图中的Ticket) ,如果没有,则说明该用户是没有经过认证的,CAS Client 会重定向用户请求到CAS Server (Step 2 )。Step 3 是用户认证过程,如果用户提供了正确的认证信息,CAS Server 会产生一个随机的Service Ticket ,会向User 发送一个Ticket granting cookie (TGC) 给User 的浏览器,并且重定向用户到CAS Client (附带刚才产生的Service Ticket),Step 5 和Step6 是CAS Client 和CAS Server 之间完成了一个对用户的身份核实,用Ticket 查到Username ,认证通过。

在该协议中,所有与CAS 的交互均采用SSL 协议,确保,ST 和TGC 的安全性。协议工作过程中会有2 次重定向的过程,但是CAS Client 与CAS Server 之间进行Ticket 验证的过程对于用户是透明的。

4.CAS 如何实现SSO

当用户访问Helloservice2再次被重定向到CAS Server 的时候,CAS Server 会主动获到这个TGC cookie ,然后做下面的事情:

1)如果User 的持有TGC 且其还没失效,那么就走基础协议图的Step4 ,达到了

SSO 的效果。

2)如果TGC 失效,那么用户还是要重新认证( 走基础协议图的Step3) 。

5.CAS服务器接口

三.准备工作

1.准备工具

2.配置环境

四.HTTPS验证配置

CAS Server 是一套基于Java 实现的服务,该服务以一个Java Web Application 单独部署在与servlet2.3 兼容的Web 服务器上,另外,由于Client 与CAS Server 之间的交互采用Https 协议,因此部署CAS Server 的服务器还需要支持SSL 协议。

注:证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书;本教程由于是演示所以就自己用JDK自带的keytool工具生成证书;如果以后真正在产品环境中使用肯定要去证书提供机构去申请,证书认证一般都是由VeriSign认证

1.生成服务端密钥文件

登录服务器打开一个CMD窗口(开始菜单-> 运行输入cmd后回车)并切换到tomcat安

装目录下(如:c:\tomcat-cas),执行如下命令:

keytool -genkey -alias casserver -keypass demosso -keyalg RSA -keystore

casserver.keystore -validity 365

执行后,可以看到tomcat安装目录下生成了一个casserver.keystore文件。如下图:

说明:-alias指定别名为casserver;-keyalg指定RSA算法;-keypass指定私钥密码;

-keystore指定密钥文件名称为casserver.keystore;-validity指定有效期为365天。另外提示的输入keystore密码应与-keypass指定的相同;您的名字与姓氏是CAS服务器使用的

域名(不能是IP,也不能是localhost),其它项随意填。

注意:服务器上如果有多个JDK,请确认环境变量中的JDK路径为tomcat所使用的JDK,如果不在环境变量中,也可切换到指定JDK的bin目录下执行命令;提示的输入keystore 密码应与-keypass必须与指定的相同,否则后面tomcat启动会报IO异常(Cannot recover key)。

2.生成服务端证书

根据以上生成的服务端的密钥文件可以导出服务端证书,执行以下命令:

keytool -export -alias casserver -storepass demosso -file casserver.cer -keystore casserver.keystore

执行后,可以看到tomcat安装目录下生成了一个casserver.cer文件。如下图:

说明:-alias指定别名为casserver;-storepass指定私钥为demosso;-file指定导出证书

的文件名为casserver.cer;-keystore指定之前生成的密钥文件的文件名。

注意:-alias和-storepass必须为生成casserver.keystore密钥文件时所指定的别名和密码,否则证书导出失败,报如下错误:

3.导入证书文件到cacerts 密钥库文件

导入以上生成的服务端的证书文件到一个cacerts密钥库文件,执行以下命令:

keytool -import -trustcacerts -alias casserver-storepass demosso -file

casserver.cer–keystore cacerts

执行后,可以看到tomcat安装目录下生成了一个cacerts文件。如下图:

如果java的安装目录有空格,执行这句会报错,我的做法是先把jdk中的cacerts拷贝到根目录下,再执行export操作

4.服务端Tomcat配置

在制作完成密钥文件、证书文件、密钥库文件后即可进行服务端Tomcat的配置。打开$CATALINA_HOME/conf/server.xml文件,注释掉如下代码段:

redirectPort="8443"/>

并取消注释代码段,修改后如下:

说明:port一般为8443或443,最常用的是443端口(https默认端口),这样https方式访问的时候可以不加端口号(如:https://https://www.360docs.net/doc/e512524781.html,/cas/login);keystoreFile 为tomcat 目录下的密钥文件;keystorePass为私钥密码;truststoreFile为生成的信任文件,如果此处不指定则默认为$JAVA_HOME/jre/lib/security/cacerts文件;其它属性默认即可。

5.生成客户端密钥库文件

单向认证的客户端配置只需生成客户端信任文件caserts即可。首先将服务端生成的证书文件(之前生成的casserver.cer文件)复制到$JAVA_HOME/jre/lib/security下,然后打开

CMD窗口切换到$JAVA_HOME/jre/lib/security下并执行命令:

keytool -import -trustcacerts -alias casclient-storepass ssoclient -file casserver.cer

-keystore cacerts

执行后,可以看到$JAVA_HOME/jre/lib/security目录下生成了一个cacerts文件。如下图:

到这里 SSL协议配置完成了。如果显示密码错误,请使用 changeit ,这个是jdk默认的证书密码

五.CAS验证服务器配置

1. 安装CAS服务器

1.解压cas-server-3.5.

2.1-release.zip到磁盘(我的路径为

D:\cas-server-3.5.2.1),进入D:\cas-erver-3.5.2.1\modules文件夹下,把

cas-server-webapp-3.5.2.1.war拷贝到Tomcat安装目录的(我的路径为

D:\apache-tomcat-7.0.52)webapps文件夹下。为了方便在浏览器中浏览,

把cas-server-webapp-3.5.2.1.war文件名修改为cas.war。

2.运行Tomcat。在浏览器中输入http://10.12.21.45:8080/cas,显示登录界面。

输入用户名和密码(用户名和密码相等即可),登录成功。这样最简单的CAS

验证服务器搭配成功。

Modules文件夹截图

2. 配置数据库验证方式

1、复制D:\cas-server-3.5.2.1\modules下面cas-server-support-jdbc-3.5.2.1.jar到D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\lib下。数据库为Oracle,因此把Oracle驱动包也复制到lib文件夹下。ojdbc14.jar

2、打开D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\deployerConfigContext.xml文件,在

在该文件中搜索“SimpleTestUsernamePasswordAuthenticationHandler”

这是cas提供的最简单的验证方式,即用户名和密码相等即可登录成功。

我们的登录用户名和密码存在于uc_employee表中,信息如下:

密码是经过加密的。因此使用我们自己编写的加密类:

1 新建一个Java项目,引入cas-server-core-3.4.5.jar包,

2 新建一个Java类,实现org.jasig.cas.authentication.handler.PasswordEncoder接口中的public String encode(String arg0)方法,这是用来对输入的密码进行加密,我这里命名为:MinxinLoan5CASMD5

3 在encode()方法中可以根据实际的加密方式编写代码。

编写完毕后,建议进行测试,避免错误发生。然后把该项目导出成jar包,并且把jar包拷贝到D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\lib下。然后添加我们自己的加密bean:

而后把上面的SimpleTestUsernamePasswordAuthenticationHandler bean给删除掉,添加如下信息:

重启服务器,测试。

3. 服务器端超时配置

打开D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\spring-configuration\目录中的applicationContext.xml文件,修改如下部分信息:

修改我们所需要的超时时间。

4. CAS 取消HTTPS 验证配置

CAS 取消HTTPS 验证之后则可以使用HTTP协议进行CAS服务器和Client之间单点登录,安全性低,CAS不建议这样做,但是若在局域网内部使用的话,但用无妨。这样做的话,前面有关服务器端/Client端tomcat的https/ssl配置也可以不用做了。

1、修改cas server 下\WEB-INF\deployerConfigContext.xml 文件

class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsA uthenticationH

andler" p:httpClient-ref="httpClient" p:requireSecure="false"/>

增加参数p:requireSecure="false",是否需要安全验证,即HTTPS,false 为不采用。

2、修改cas server下\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml

文件

xmlns:xsi="https://www.360docs.net/doc/e512524781.html,/2001/XMLSchema-instance"

xmlns:p="https://www.360docs.net/doc/e512524781.html,/schema/p"

xsi:schemaLocation="https://www.360docs.net/doc/e512524781.html,/schema/beans

https://www.360docs.net/doc/e512524781.html,/schema/beans/spring-beans-2.0.xsd">

Defines the cookie that stores the TicketGrantingTicket. You most likely should never

modify these (especially the "secure" property).

You can change the name if you want to make it harder for people to guess.

id="ticketGrantingTicketCookieGenerator"

class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

p:cookieSecure="false"

p:cookieMaxAge="-1"

p:cookieName="CASTGC"

p:cookiePath="/cas" />

参数p:cookieSecure="true",TRUE 为采用HTTPS 验证,与deployerConfigContext.xml 的参数

保持一致。

参数p:cookieMaxAge="-1",简单说是COOKIE 的最大生命周期,-1 为无生命周期,即只在当

前打开的IE 窗口有效,IE 关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为

大于0 的数字,比如3600 等,意思是在3600 秒内,打开任意IE 窗口,都不需要验证。

3、修改cas server 下\WEB-INF\spring-configuration\warnCookieGenerator.xml 文件

class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

p:cookieSecure="true"

p:cookieMaxAge="-1"

p:cookieName="CASPRIVACY"

p:cookiePath="/cas" />

两个参数与上面同理。

六.修改界面

1.修改验证通过后显示提示信息的界面

修改D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\view\jsp\default\ui\ casGenericSuccess.jsp页面,添加如下内容调转到指定页面

<%

response.sendRedirect("http://192.168.9.111:8080/minxinloan/welcome/

/error.do");

%>

2.定义自己的验证界面

cas给我们提供了一个"default" 界面,该界面比较简单,而且也不怎么漂亮,因此我们需要定制自己的验证界面。下面介绍一下如何设计自己的界面。

1 进入D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\view\jsp,把default文件夹复制一份在本目录下,这里我把文件夹修改为minxinloan。

2 进入D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\view\jsp\minxinloan\ui。在该目录下你将会看到如下文件:

如果想修改界面,我建议我们首先熟悉里面所有的jsp页面。重点是casLoginView.jsp还有includes目录下的两个文件。

我们在修改时尽量不要修改forms和逻辑标签。除非我们比较熟悉他们。如果我们定义的

页面中含有样式表,可直接修改D:\apache-tomcat-7.0.52\webapps\cas\themes\default目录下的cas.css文件。当然我们也可以自己创建一个css文件,个人建议也把文件放到D:\apache-tomcat-7.0.52\webapps\cas\themes中,可新建一个目录比如minxinloan。接着我们要修改jsp页面中的引用路径。打开D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\view\jsp\

minxinloan\ui\includes\top.jsp文件。找到如下代码:

我们需要standard.custom.css.file的值。该值存在于

D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\classes\cas-theme-default.proper ties文件中。修改为我们的路径。

引用的图片也需要注意相对路径和绝对路径。

3 进入D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\classes目录,复制default_views.properties,我这里重新命名为minxinloan_views.properties。打开该文件,修改页面路径,我这里是把default全部替换为minxinloan。

注意:该目录下存在很多messages_*.properties文件,主要是为了国际化。我把不需要的语言给删除掉。同时修改messages_zh_CN.properties文件中的信息,使得提示信息更加符合我们的需求。这个文件我是在Eclipse中修改的。我的Eclipse安装了PropertiesEditor插件。

4 打开D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\cas.properties文件,把cas.viewResolver.basename=default_views

修改为

cas.viewResolver.basename=minxinloan_views

5 启动服务器,测试下效果。有可能显示原来的界面,可尝试把D:\apache-tomcat-7.0.52\ work\Catalina 目录下的文件夹清空掉。

七.业务系统配置

1.添加jar包

解压cas-client-3.2.1-release.zip到磁盘上,我这里放在D盘中。并且把D:\cas-client-3.2.1\modules目录中的所有jar包拷贝到我们业务系统中。注意删除重复的jar包。

2.导入证书

我们需要把CAS验证服务器上生成的server.cer的证书导入到我们业务系统JDK上。

注意:根据JDK和JRE的安装路径进行相应的修改,如果没有安装JRE,则第一条命令不需要执行。

3.配置业务系统web.xml文件

在业务系统的web.xml中添加如下配置信息

CAS_SSO单点登录实例详细步骤

CAS SSO单点登录实例详细步骤 原创作者:孙俊财

第一步 1、用keytool生成证书: 命令: keytool -genkey -alias sjc -keyalg RSA -keysto re c:/store/mykey 说明: 这里-alias sjc 是表示生成的这个证书的别名叫sjc,-keyalg RSA 指的是采用的RSA算法,-keystore c:/store/mykey是指生成的证书存储的位置。回车后会提示你输入keystore password,这可以自己定(这里输入sunjuncai,下面配tomcat时要用的),然后是一些个人信息及组织信息,可以轻松搞定。 注意:密码输入后,会让你输入其他信息,记得这里第一个姓名必须是服务器的域名这里我输入的是完整计算机名称:gaofeng.nmc.hamcc 这里要注意如果不这样写就会报如下异常: java.io.IOException: HTTPS hostname wrong: should be 实战: C:\Documents and Settings\wangyoushi8>keytool -genkey -alias sjc -keyalg RSA -keystore c:/store/mykey 输入keystore密码:sunjuncai

您的名字与姓氏是什么? [Unknown]:gaofeng.nmc.hamcc 您的组织单位名称是什么? [Unknown]:上海神洲数港 您的组织名称是什么? [Unknown]:网络优化 您所在的城市或区域名称是什么? [Unknown]:郑州 您所在的州或省份名称是什么? [Unknown]:河南 该单位的两字母国家代码是什么 [Unknown]:ZH CN= gaofeng.nmc.hamcc, OU=上海神洲数港, O=网络优化, L=郑州, ST=河南, C=ZH 正确吗? [否]:y 输入的主密码 (如果和keystore 密码相同,按回车): 2、创建证书后,就导出证书: 命令: keytool -export -file c:/store/server.crt -alias sjc -keystore c:/store/mykey 说明: 从c:/store/mykey里取出证书入到c:/store/下,如果没有指定,就是存放在目录下C:\Documents and Settings\用户目录名\ 实战: C:\Documents and Settings\wangyoushi8>keytool -export -file c:/store/server.crt -alias sjc -keystore C:/store/mykey 输入keystore密码:sunjuncai 保存在文件中的认证 3、为客户端的JVM导入密钥: 命令: keytool -import -keystore D:/jdk1.5.0_12/jre/lib/security/cacerts -file c:/store/server.crt -alias sjc 说明: 注意:输入密码时密码为"changeit",这是默认密码. 特别说明:这个D:/jdk1.5.0_12/jre/lib/security/cacerts是指JDK的JRE路径下的lib目录. 至此,第一步完成。 实战: C:\Documents and Settings\wangyoushi8> keytool -import -keystore D:/jdk1.5.0_12/jre/lib/security/cacerts -file c:/store/server.crt -alias sjc 输入keystore密码:changeit

手把手教你结构设计(入门到熟练)

手把手教你结构设计(入门到熟练) 1.结构设计的过程(了解) 本文是送给刚接触结构设计及希望从事结构设计的新手的,其目的是使新手们对结构设计的过程以及结构设计所包括的内容有一个大致的了解,请前辈们不要见笑了,新人们有什么问题也可以在贴中提出来,大家共同讨论,共同进步。 1,看懂建筑图 结构设计,就是对建筑物的结构构造进行设计,首先当然要有建筑施工图,还要能真正看懂建筑施工图,了解建筑师的设计意图以及建筑各部分的功能及做法,建筑物是一个复杂物体,所涉及的面也很广,所以在看建筑图的同时,作为一个结构师,需要和建筑,水电,暖通空调,勘察等各专业进行咨询了解各专业的各项指标。在看懂建筑图后,作为一个结构师,这个时候心里应该对整个结构的选型及基本框架有了一个大致的思路了. 2,建模(以框架结构为例)(关键) 当结构师对整个建筑有了一定的了解后,可以考虑建模了,建模就是利用软件,把心中对建筑物的构思在电脑上再现出来,然后再利用软件的计算功能进行适当的调整,使之符合现行规范以及满足各方面的需要.现在进行结构设计的软件很多,常用的有PKPM,广厦,TBSA等,大致都差不多。这里不对软件的具体操作做过多的描述,有兴趣的可以看看,每个软件的操作说明书(好厚好厚的,买起来会破产)。每个软件都差不多,首先要建轴网,这个简单,反正建筑已经把轴网定好了,输进去就行了,然后就是定柱截面及布置柱子。柱截面的大小的确定需要一定的经验,作为新手,刚开始无法确定也没什么,随便定一个,慢慢再调整也行。柱子布置也需要结构师对整个建筑的受力合理性有一定的结构理念,柱子布置的合理性对整个建筑的安全与否以及造价的高低起决定性作用...不过建筑师在建筑图中基本已经布好了柱网,作为结构师只需要对布好的柱网进行研究其是否合理.适当的时候需要建议建筑更改柱网.当布好了柱网以后就是梁截面以及主次梁的布置.梁截面相对容易确定一点,主梁按1/8~1/12跨度考虑,次梁可以相对取大一点主次梁的高度要有一定的差别,这个规范上都有要求。而主次梁的布置就是一门学问,这也是一个涉及安全及造价的一个大的方面.总的原则的要求传力明确,次梁传到主梁,主梁传到柱.力求使各部分受力均匀。还有,根据建筑物各部分功能的不同,考虑梁布置及梁高的确定(比如住宅,在房中间做一道梁,本来层就只有3米,一道梁去掉几十公分,那业主不骂人才怪...)。梁布完后,基本上板也就被划分出来了,当然悬挑板什么的现在还没有,需要以后再加上...,梁板柱布置完后就要输入基本的参数啦,比如混凝土强度啊,每一标准层的层高啊,板厚啊,保护层啊,这个每个软件设置的都不同,但输入原则是严格按规范执行.当整个三维线框构架完成,就需要加入荷载及设置各种参数了,比如板厚啊,板的受力方式啊,悬挑板的位置及荷载啊什么的,这时候模形也可以讲基本完成了,生成三维线框看看效果吧,可以很形象的表现出原来在结构师脑中那个虚构的框架. 2.计算 计算过程就是软件对结构师所建模型进行导荷及配筋的过程,在计算的时候我们需要根据实际情况调整软件的各种参数,以符合实际情况及安全保证,如果先前所建模型不满足要求,就可以通过计算出的各种图形看出,结构师可以通过对计算出的受力图,内力图,弯矩图等等对电算结果进行分析,找出模型中的不足并加以调整,反复至电算结果满足要求为止,这时模型也就完全的确定了.然后再根据电算结果生成施工图,导出到CAD中修改就行了,通常电算的只是上部结构,也就是梁板柱的施工图,基础通常需要手算,手工画图,现在通常采用平面法出图了,也大大简化了图纸有利于施工. 3.绘图 当然,软件导出的图纸是不能够指导施工的,需要结构师根据现行制图标准进行修改,这就看每个人的绘图功底了,施工图是工程师的语言,要想让别人了解自己的设计,就需要更为详细的说明,出图前结构师要确定,别人根据施工图能够完整的将整个建筑物再现于实际中,这是个复杂的过程,需要仔细再仔细,认真再认真。结构师在绘图时还需要针对电算的配筋及截面大小进一步的确定,适当加强薄弱环节,使施工图更符合实际情况,毕竟模型不能完完全全与实际相符.最后还需要根据现行各种规范对施工图的每一个细节进行核对,宗旨就是完全符合规范,结构设计本就是一个规范化的事情.我们的设计依据就是那几十本规范,如果施工图中有不符合规范要求的地方,那发生事故,设计者要负完全责任的......总的来讲,结构施工图包括设计总说明,基础平面布置及基础大样图,如果是桩基础就还有桩位图,柱网布置及柱平面法大样图,每层的梁平法配筋图,每层板配筋图,层面梁板的配筋图,楼梯大样图等,其中根据建筑复杂程度,有几个到几十个结点大样图. 4.校对审核出图 当然,一个人做如此复杂的事情往往还是会出错,也对安全不利,所以结构师在完成施工图后,需要一个校对人对整个施工图进行仔细的校对工作,校对通常比较仔细资格也比较老,水平也比较高,设计中的问题多是校对发现的,校对出了问题后返回设计者修改。修改完毕交总工审

简单的单点登录实现过程及效果展示

一、实现过程 从用到的jar包文件夹的cas-server-3.3.1modules中找出cas.war放到tomcat/webapps下面(cas-server-webapp-3.3.1.war重命名即可)。 现在cas默认的server端已经有了,下面自己写2个客户端测试一下 MyEclipse里面新建web project:sso 新建类HelloWorldExample package servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public final class HelloWorldExample extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html");

PrintWriter writer = response.getWriter(); writer.println(""); writer.println(""); writer.println("Sample Application Servlet Page"); writer.println(""); writer.println(""); writer.println("

"); writer.println(""); writer.println(""); writer.println(""); writer.println(""); writer.println("
"); writer.println(""); writer.println(""); writer.println("

Sample Application Servlet

"); writer.println("This is the output of a servlet that is part of"); writer.println("the Hello, World application."); writer.println("
");

CAS单点登录配置全过程

CAS配置全过程 软件工具: 1.cas-server-3.3.5-release.zip(CAS服务端) 2.cas-client- 3.1.10-release.zip(CAS客户端) 3.apache-tomcat-7.0.40 https://www.360docs.net/doc/e512524781.html,mons-dbcp-all-1.3-r699049.jar 5.mysql-connector-java-5.1.18-bin.jar 6.cas-server-jdbc-3.0.5-rc2.jar 写在前面的话 此配置是根据当前系统,当前的版本,仅供参考,如果有什么其他的问题可以一起研究。 第一节:先走通技术障碍 第一步:环境部署 1.在Tomcat 根目录下创建一个cas目录。 2.下载CAS服务器并解压,打开cas-server- 3.3.5\modules,将cas-server-webapp-3.3.5.war复制到刚刚在Tomcat创建的cas目录下,并重命名为ROOT.war 3.修改host文件(C:\Windows\System32\drivers\etc)添加 127.0.0.1 https://www.360docs.net/doc/e512524781.html, 注意:如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,

可以不配置此项,下文有用到https://www.360docs.net/doc/e512524781.html,,可以用相应PC机的IP代替 4.修改Tomcat文件下的server.xml(apache-tomcat-7.0.40\conf\server.xml) 添加内容: 5.启动Tomcat服务,查看信息,(如果有报错,可以根据信息查找错误),打开浏览器,输入https://www.360docs.net/doc/e512524781.html,:8080如果出现以下界面,则CAS服务端配置成功。 注:这个是最简单的CAS服务,只要输入的用户名跟密码一样,就可以正常登陆,在我们实际开发中,这个验证因为跟数据库作比较,接下来,我们就配置数据库校验。 第二步:配置数据库验证 1.打开deployerConfigContext.xml,在apache-tomcat-7.0.40\cas\ROOT\WEB-INF目录下,找到如下代码: 添加下面代码: 2.增加数据源dataSource, 在deployerConfigContext.xml,(跟上面同一个文件)找到 ,在下面添

CAS单点登录

CAS单点登录总结 一、服务端搭建 1.安装JDK。 2.安装Tomcat。安装版本Tomcat7.0. 3.在Tomcat上配置SSl (1)生成证书。在C盘根目录下建立子文件夹“Keys”,用于存放证书。在 JDK安装文件夹下的bin文件夹(C:\Program Files\Java\jre1.8.0_60\bin)下打开“命令窗口”。 (2)执行命令“keytool -genkey -alias tomcat -keyalg RSA -storepass changeit -keystore c:\keys\.keystore -validity 3600”创建证书。 (3)将证书导入的JDK的证书信任库中 第一步:导出证书。 执行命令“keytool -export -trustcacerts -alias tomcat -file c:\keys\tomcat.cer -keystore c:\keys\.keystore -storepass changeit”将证书导出到Keys文件夹。 第二步:将证书导入到JDK证书信任库。 执行命令“keytool -import -trustcacerts -alias tomcat -file c:\keys\tomcat.cer -keystore "C:\Program Files\Java\jre7\lib\security\cacerts" -storepass changeit”。系统询问 是否信任此证书,回答“y” 4、配置server.xml文件 用文本编辑器管理员身份运行,打开Tomcat7.0下的server.xml文件(C:\Program

CAS认证实现单点登录

CAS认证实现单点登录 一.背景 有几个相对独立的java的web应用系统,各自有自己的登陆验证功能,用户在使用不同的系统的时候,需要登陆不同的系统。现在需要提供一个 统一的登陆/登出界面,而不修改各个系统原来的登陆验证机制。于是采用单点登录系统开源单点登录产品CAS。 随着新的业务网站不断的增加,用户在每个应用系统中都有独立的账号,这样就造成在访问不同的应用系统时,需要记录对应的用户名和密码,多 个用户名密码极易记混,如果忘记或记错了某一个业务网站的用户名或密码就无法进行登录,耽误工作,影响工作效率 允许用户一次性进行认证之后,就访问系统中不同的应用 二.原理 CAS 是一个独立的web 应用, 当前使用Java Servlets 实现,通过HTTPS 协议保证其数据的传输安全性。它通过三个Url 地址进行访问:登录Url、验证URL、注销URL。

三. CAS认证集成 要使用单点登录,需要部署CAS系统,CAS服务端可以直接部署在tomcat下运行,对于CAS服务端来说,所有要集成单点登录的web应用都是它的一个客户端,CAS有客户端jar包,客户端web应用需要引入CAS客户端的jar包,这样CAS系统的服务端和客户端web应用程序端才能通信。 客户端web应用程序的通过配置web.xml,添加CAS需要的各种过滤器,来实现和CAS服务器通信,用户信息验证工作在CAS 服务端统一完成,验证通过后,客户端web应用程序只需要补全自己的Session信息即可。 3.1部署CAS系统服务端 步骤1:准备好以下运行环境 jdk1.6+

tomcat6+ jdk与tomcat的下载、安装、配置在此略过。 步骤2:安装部署cas-server 到官网(https://www.360docs.net/doc/e512524781.html,/cas/cas-server-3.5.0-release.zip)下载cas-server-3.5.0-release.zip。解压缩以后,在其路 径 cas-server-3.5.0\modules 下面找到 cas-server-webapp-3.5.0.war,将其拷贝到 tomcat 的webapps 下,改名为 cas.war, 并修改 war 包中配置文件 cas.properties 里的 cas server name=cas 并启动 tomcat,启动后可在浏览器访 问 http://localhost:8080/cas/login

手把手教你学FPGA 设计思想篇

泽屹电子 手把手教你学FPGA 设计思想篇 阿东团队编著

手把手教你学FPGA 设计思想篇

目录 写在前面...................................................................................................................................... - 4 - 1 什么是设计思想.................................................................................................................... - 6 - 2 概述........................................................................................................................................ - 6 - 3 代码简单化............................................................................................................................ - 6 - 4 注释层次化............................................................................................................................ - 7 - 5 交互界面清晰化.................................................................................................................... - 7 - 6 模块划分最优化.................................................................................................................... - 7 - 7 代码工具化............................................................................................................................ - 8 - 8 方案精细化............................................................................................................................ - 8 - 9 资源合理化............................................................................................................................ - 9 - 10 时序流水化.......................................................................................................................... - 9 - 11 资源优化方法.................................................................................................................... - 10 - 12 代码自检............................................................................................................................ - 10 - 13 通用电路BB化.................................................................................................................. - 10 -

CAS实现单点登录(SSO)经典完整教程

一、简介 1、cas是有耶鲁大学研发的单点登录服务器 2、本教材所用环境 ?Tomcat7.2 ?JDK6 ?CAS Service 版本 cas-server-3.4.8-release ?CAS Client版本 cas-client-3.2.1-release 二、生成证书 证书对于实现此单点登录非常之重要,证书是服务器端和客户端安全通信的凭证,本教程只是演示,所有用了 JDK自带的证书生成工具keytool。当然在实际项目中你可以到专门的证书认证中心购买证书。 中文官方网站:https://www.360docs.net/doc/e512524781.html,/cn/ 1、用JDK自带的keytool生成证书 view plain 1.命令:keytool -genkey -alias smalllove -keyalg RSA -keystore D:/keys/smallkey 此命令是生成一个证书,其中smalllove 是证书别名 此命令的执行如图所示:

其中名字与姓氏这一最好写你的域名,如果在单击测试你可以在C:\Windows\System32\drivers\etc\hosts文件中映射一个虚拟域名,注意不要写IP。 2、导出证书 view plain

1.命令:C:\>keytool -export -file d:/keys/small.crt -alias smalllove -keystore d:/keys/smallkey 如图: 密码为上步设置的密码。 3、把证书导入到客户端JDK中。 view plain 1.命令:keytool -import -keystore C:\Java\jdk1.6.0_21\lib\security\cacerts -file D:/keys/small.crt -alias smalllove 此命令是把证书导入到JDK中。 如图:

手把手教你设计最佳的移动支付流程新

左边是是由Moby设计的响应式移动支付流程,他减少了不必要的信息只保留了必要的信息。成功的把整个支付流程聚合到了一个页面。 右边是kayjeweler把一个简单的体验变得非常繁琐。总共有三页,展示了很多不必要的信息,例如“晚上电话”和“手机号码”两个没有用的信息,把地址栏分成了三栏(而不是只有一个邮政编码栏),还需要用户重复输入email地址。 2、允许以访客身份结账 提供访客身份支付在媒介中应该是一个标准的做法(尽管24%的电子商务网站不会这样做),尤其在移动端。统计数据显示,如果用户必须去建立一个账户并确认,他们可能不会完成订单,这有时 候还是非常令人震惊的。据报道,一个商家删除了“注册”按钮后,看到了销售额3亿美元的飞跃。

伯顿开始对结帐过程对冲赌注,为用户提供三个选项:“登录”,“创建帐户”或“访客结帐。” 3、利用移动用户界面元素 Fandango有一个流畅的手机支付体验。其中很大一个原因在于它善于利用媒介的优势,更多使用触控设备,用户使用起来比打字更容易。

Fandango的桌面端UI和移动端UI Fandango的桌面版UI(左边),提供给用户使用一个典型的下拉菜单选择数量。在移动UI( 右边),则提供他们使用的的增量选择器(也有输入选项),更快速的选择数量。 4、消除干扰,而不是内容 一旦用户到达了支付的页面,他们显然已经有意愿购买这个产品了。这个时候,该网站已切换从一个销售人员转变成一个订单执行中心。由此,支付的页面应当去掉影响用户注意力的多余信息。 当你在亚马逊购物时会注意到封闭的支付策略,页面去除了标准的页头,包括可能推动用户去其他地方的菜单链接和搜索栏,支付页面在移动端可以做的更加简单。 用户一旦来到 dillard支付页面,, 他们唯一的逃生舱就是左上角的logo。

CAS单点登录配置全过程

CAS配置全过程 说明:这里只是简单的配置了CAS单点登录的过程,并没有加入复杂的验证,也没有做MD5的校验。输入数据库中存在的用户名跟密码就会登录成功 一. 首先需要下载cas-server-3.4.2-release.zip包,这个包里面包含CAS Server服务器的war包。解压之后放到找到cas-server-3.4.2\modules 下的 cas-server-webapp-3.4.2.war , 拷tomcat\webapps\下并改名为cas.war。 启动tomcat后会在webapps下看到cas文件,然后停止tomcat. 二. 配置tomcat以及修改cas server的配置 1.生成证书并导入到jdk的jre中 请直接运行附件中的.bat文件会自动把证书生成在D盘根目录下并导入到jre 中 这是bat脚本内容 keytool -genkey -alias tomcatgecko -keyalg RSA -keystore d:\mykeystore -dname "CN=gecko-4d4611f2e, OU=gecko-4d4611f2e, O=gecko-4d4611f2e, L=SH, ST=SH, C=CN" -keypass changeit -storepass changeit keytool -export -alias tomcatgecko -keystore d:\mykeystore -file d:\mycerts.crt -storepass changeit keytool -import -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -file d:\mycerts.crt -alias tomcatgecko 这里要注意:证书是要导入到tomcat使用的jdk。不然CAS在跳转时会找不到本地域名脚本中红色的部分是写自己的计算机名称

手把手教你天线设计——用MATLAB仿真天线方向图

手把手教你天线设计—— 用MATLAB仿真天线方向图 吴正琳 天线是一种变换器,它把传输线上传播的导行波,变换成在无界媒介(通常是自由空间)中传播的电磁波,或者进行相反的变换。在无线电设备中用来发射或接收电磁波的部件。无线电通信、广播、电视、雷达、导航、电子对抗、遥感、射电天文等工程系统,凡是利用电磁波来传递信息的,都依靠天线来进行工作。此外,在用电磁波传送能量方面,非信号的能量辐射也需要天线。一般天线都具有可逆性,即同一副天线既可用作发射天线,也可用作接收天线。同一天线作为发射或接收的基本特性参数是相同的。这就是天线的互易定理。天线的基本单元就是单元天线。 1、单元天线 对称振子是一种经典的、迄今为止使用最广泛的天线,单个半波对称振子可简单地单独立地使用或用作为抛物面天线的馈源,也可采用多个半波对称振子组成天线阵。两臂长度相等的振子叫做对称振子。每臂长度为四分之一波长、全长为二分之一波长的振子,称半波对称振子。 对称振子是一种经典的、迄今为止使用最广泛的天线,单个半波对称振子可简单地单独立地使用或用作为抛物面天线的馈源,也可采用多个半波对称振子组成天线阵。两臂长度相等的振子叫做对称振子。每臂长度为四分之一波长、全长为二分之一波长的振子,称半波对称振子。

1.1用MATLAB画半波振子天线方向图 主要是说明一下以下几点: 1、在Matlab中的极坐标画图的方法: polar(theta,rho,LineSpec); theta:极坐标坐标系0-2*pi rho:满足极坐标的方程 LineSpec:画出线的颜色 2、在方向图的过程中如果rho不用abs(f),在polar中只能画出正值。也就是说这时的方向图只剩下一半。 3、半波振子天线方向图归一化方程: Matlab程序: clear all lam=1000;%波长 k=2*pi./lam;

知识:手把手教你计算光电参数,设计高光效产品

知识:手把手教你计算光电参数,设计高光效产品 作为一个光学设计师,在工作中经常遇到关于光电参数计算的问题,以前100lm/W灯管就是好产品,但随着LED的发展,要求也水涨船高,现在很多工程案例为了节能,光效从120涨到150、甚至180lm/W,让人非常头疼。 下面结合实例,谈一谈怎么设计一款光电满足要求的灯具。 标称值一般指产品稳定后的测试数据。 你首先必须知道灯具测试的标准,大部分灯具可以直接通过积分球完成光电测试,依据IESLM79提供的方法,需要待灯具稳定后来测试,至于一些参数虚标的产品可以无视。

图1.IES LM79中对灯具稳定的要求 为什么一定是稳定后的数据,大部分LED产品从瞬态到稳态都有一个衰减,而这些衰减很大,不能够忽视。 通过测试这些衰减大小,可以等到一个相对的热衰减系数,可以参看红字部分。 表2市场上8-9W球泡灯的测试参数 LED灯珠选型与测试 设计的时候,首先是LED选型,LED规格书好多页,让你眼花缭乱。主要有额定功率、光通量、电压、色温、显色指数、色容差等等。如果继续深究下去,支架有ppa、pct、emc 几种,芯片尺寸有好多种,荧光粉、硅胶、金线、支架金属都有很大的猫腻,这些对光源寿命都有着很大影响。 对LED而言,最重要的就是额定电流下光通量,比如现在最常用2835颗粒,额定60mA 的光通量24-26lm。那是不是我将100pcs该LED焊在灯条上,60mA测试时光通量就是240-260lm?

答案是否定的,以下是一些误差的来源,最后测试报告一定是以自己仪器测试为准,所以就需要弄清楚这些系数。 表3 一些误差汇总 然而这些系数有时候推算比较麻烦,也少不了很多一对一测试。所以我的思路是,直接将厂商的标准LED灯珠焊在灯板上,用大积分球测试,直流供电,测试多个电流下的数据。 如果你设计一款常规的产品,对光效没有要求,额定电流下测试就可以了。但如果你需要更高光效的产品,那些方法就不适用了,要么选择更亮的灯珠,要么就是降低电流使用,更多的时候两者需要结合来使用。 表4 一款颗粒的测试数据 LED灯珠数量计算 做好以上一些工作后了,你还缺少两个重要的参数,一个是灯具电源转换效率,另外一个就是灯具的光学效率,可以通过如下公式计算,有时候面对全新的灯具无从入手,可以根据经验进行一些估算。

CAS单点登录系统实操指南

CAS单点登录系统实操指南 CAS单点登录系统实操指南 (1) 1. CAS单点登录介绍 (3) 1.1. 什么是单点登录 (3) 1.2. 什么是CAS (3) 2. CAS服务端部署及配置 (5) 2.1. 基础部署配置 (5) 2.2. 去除https认证 (7) 2.3. 登录数据源设置 (8) 2.3.1 密码未加密处理 (8) 2.3.2 密码MD5加密配置 (9) 2.4. 登录页面的极简改造 (10) 3. CAS客户端搭建 (11) 3.1. 搭建工程并添加依赖 (11) 3.2. 单点登录配置 (12) 3.3. 单点登出配置 (14) 3.3.1 未重定向登出 (14) 3.3.2 重定向地址登出 (15) 3.4. 获取登录用户信息配置 (15) 4. CAS客户端与SpringSecurity集成 (16) 4.1. 搭建工程并添加依赖 (16)

4.2. 修改和创建配置文件 (18) 4.3. 创建Spring-security认证脚本 (22) 4.4. 获取登录名 (22)

1. CAS单点登录介绍 1.1. 什么是单点登录 单点登录(Single Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 我们目前的系统存在诸多子系统,而这些子系统是分别部署在不同的服务器中,那么使用传统方式的session是无法解决的,我们需要使用相关的单点登录技术来解决。 1.2. 什么是CAS CAS 是Yale 大学发起的一个开源项目,旨在为Web 应用系统提供一种可靠的单点登录方法,CAS 在2004 年12 月正式成为JA-SIG 的一个项目。CAS 具有以下特点:

单点登录_尚学堂CAS讲义

一.SSO (Single Sign-on)原理 SSO 分为Web-SSO和桌面SSO。桌面SSO 体现在操作系统级别上。Web-SSO体现在客户端,主要特点是:SSO 应用之间使用Web 协议( 如HTTPS) ,并且只有一个登录入口。我们所讲的SSO,指Web SSO 。 SSO 的体系中,有下面三种角色: ?User(多个) ?Web应用(多个) ?SSO认证中心(一个) SSO 实现模式千奇百怪,但万变不离其宗,包含以下三个原则: ●所有的登录都在 SSO 认证中心进行。 ●SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的 用户。 ●SSO 认证中心和所有的 Web 应用建立一种信任关系。 二.CAS 的基本原理 CAS(Central Authentication Service) 是Yale 大学发起的构建Web SSO 的Java开源项目。 1.CAS 的结构体系 ◆CAS Server CAS Server 负责完成对用户信息的认证,需要单独部署,CAS Server 会处理用户名/ 密码等凭证(Credentials) 。 ◆CAS Client CAS Client部署在客户端,当有对本地Web 应用受保护资源的访问请求,并且需要对请求方进行身份认证,重定向到CAS Server 进行认证。 2.CAS 协议 基础协议

上图是一个基础的CAS 协议,CAS Client 以过滤器的方式保护Web 应用的受保护资源,过滤从客户端过来的每一个Web 请求,同时,CAS Client 会分析HTTP 请求中是否包请求Service Ticket( 上图中的Ticket) ,如果没有,则说明该用户是没有经过认证的,CAS Client 会重定向用户请求到CAS Server (Step 2 )。Step 3 是用户认证过程,如果用户提供了正确的认证信息,CAS Server 会产生一个随机的Service Ticket ,会向User 发送一个Ticket granting cookie (TGC) 给User 的浏览器,并且重定向用户到CAS Client (附带刚才产生的Service Ticket),Step 5 和Step6 是CAS Client 和CAS Server 之间完成了一个对用户的身份核实,用Ticket 查到Username ,认证通过。 3.CAS 如何实现SSO 当用户访问Helloservice2再次被重定向到CAS Server 的时候,CAS Server 会主动获到这个TGC cookie ,然后做下面的事情: 1)如果User 的持有TGC 且其还没失效,那么就走基础协议图的Step4 ,达到了 SSO 的效果。 2)如果TGC 失效,那么用户还是要重新认证( 走基础协议图的Step3) 。 三.实践配置 下面我们以tomcat 5.5 为例进行说明(这里,我将Server和Client同时放在了同一个Tomcat服务器下)。 软件环境:tomcat 5.5 ant-1.6.5, jdk1.5.0_06 下载cas-server-3.0.4.zip和cas-client和cas-server-jdbc-3.0.5-rc2.jar和mysql 5.0.16和tomcat 5.5.15 https://www.360docs.net/doc/e512524781.html,/downloads/cas/cas-server-3.0.4.zip

手把手教你设计限制性股票和股票期权方案

手把手教你设计限制性股票和股票期权方案2018-08-08 11:38 限制性股票和股票期权是国内上市公司应用最广泛的两种股权激励方式,也是有明确政策规范的两种股权激励方式,本文将讲述如何设计限制性股票和股票期权方案。 一、基本原则 由于非上市公司并无股票,因此上市公司和非上市公司在方案的设计和应用层面会有如下不同之处: 二、政策要求 上市公司在设计限制性股票和股票期权计划的时候,会有明确的政策规范,最主要的规范如下表:

上表中,虽然对限制性股票和股票期权的授予价和行权价有明确规定,但并不绝对,只要给出证监会充分合理解释也能获批。例如,2017年苏泊尔限制性股票激励案例,股票来源是通过二级市场回购,公告草案前一日收盘价是37.07元/股,但是公司授予价格是1元/股,远远低于规定的价格,公司在公告中披露,该定价目的为考虑激励对象整体薪酬水平的竞争力。 非上市公司在方案设计中,可以不受上述政策约束,根据公司实际情况自行设计。

三、方案设计 股权激励方案设计需遵守四步法原则,方能保证方案的切实有效,四步分别是激励分析、激励基础、激励保障和激励实施。 1)激励分析 对公司的人员情况、业务发展和资本现状进行分析。而对于限制性股票和股票期权两种方案,大致可以总结出以下几种情况: ?人员较稳定,能力较确定的,可采取限制性股票的方式;人员还有待观察的,但又确实十分重要的,可采取股票期权的方式; ?初创公司一般倾向于股票期权;上市公司一般倾向于限制性股票; ?未来企业估值明显提升的、或者上市公司股价肯定上涨的,采用股票期权的较多; 股价平缓甚至略微不稳定导致可能下降的,采用限制性股票的较多。 当然,限制性股票和股票期权各有特色,企业到底采取哪种方式还有很多影响因素,需要全盘考虑才能更加周详。 2)激励基础 激励基础是一些基本的股权激励规则,包括选人机制、分配机制、发放机制、定价机制和收益机制。

CAS3.5.2单点登录详解

服务端cas: 从网上下载cas:https://www.360docs.net/doc/e512524781.html,/ 在cas下: 在cas-client下: 解压cas-server-3.5.2-release.zip\cas-server-3.5.2\module\cas-server-webapp-3.5.2.war部署到tomcat上, 设置 F:\apache-tomcat-6.0.30\webapps\cas\WEB-INF\cas-servlet.xml(大家取实际情况的路径) 默认为false,这个设置是为了让登出(logout)以后进入到指定页面. 设置deployerConfigContext.xml 配置数据源和加密: oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:orcl require require 然后注释掉下面这行,这行是为了测试使用,只要账号密码相同就可以通过验证

相关文档
最新文档