单点登录学习笔记一

单点登陆 single sign on(sso)

自动登录:  

  用户在通过浏览器登录某一站点后,在以后的规定时间内访问该站点将自动完成登

录。

  通过cookie的方式将客记信息保存在客户机上

  在android应用中也可以采取此种方式,在发起http请求的时候带cookie信息

  

自动登录的实现原理:

   在相同域名的情况下:

     采用cookie的方式 domain=域名

   在不同域名的情况下:

     中央认证服务器:

     cas(centrol authentication service)

服务器端下载地址:http://downloads.jasig.org/cas/ 

  客户端下载地址:http://www.jasig.org/cas/download 

使用keytool创建证书:

   keytool -genkey -alias test-keyalg RSA -keystore d:/keys/testkey

域名: 可以在C:\WINDOWS\system32\drivers\etc\host文件中添加

     127.0.0.1       cn.yue.com

导出证书:

   keytool -export -file d:/keys/test.crt -alias test -keystore d:/keys/testkey

 

为客户端的JVM导入证书

keytool -import -keystore C:\Java\jdk1.6.0_10\jre\lib\security\cacerts -file D:/keys/test.crt -alias test

 

 C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore  

如果提示:

keytool工具java.io.IOException: Keystore was tampered with, or password was incorrect 异常的解决办法 

可以输入:changeit这处密码

方式二生成证书文件;

 keytool -genkey -alias tomcat -keyalg RSA  -keystore     C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore  

应用证书到web服务器:

<Connector port="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:\小工具\java web\单点登陆\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提供一个查询接口-->

   <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">

                <propertyname="dataSource" ref="dataSource"></property>

                <propertyname="sql" value="select password from test_user where login_name=?"></property>

                <propertyname="passwordEncoder" ref="MD5PasswordEncoder"></property>

          </bean>

在最后添加:

 <!-- add dataSource -->

  <bean id="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>

 

<bean id="MD5PasswordEncoder"class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">

    <constructor-argindex="0">

        <value>MD5</value>

    </constructor-arg>

</bean>

添加cas-server-support-jdbc-3.5.0.jarmysql驱动包到C:\Java\apache-tomcat-6.0.35\webapps\cas\WEB-INF\lib

创建用户表

CREATE TABLE `test_user` (
   `id` bigint(20) NOT NULL auto_increment,
   `email` varchar(255) default NULL,
   `login_name` varchar(255) NOT NULL,
   `name` varchar(255) default NULL,
   `password` varchar(255) default NULL,
   PRIMARY KEY  (`id`),
   UNIQUE KEY `login_name` (`login_name`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

posted @ 2012-09-23 14:13  retacn_yue  阅读(160)  评论(0编辑  收藏  举报