• SSO 基于CAS实现单点登录 实例解析(二)


    本文文件夹:

    • 概述
    • 演示环境
    • 部署CAS-Server相关的Tomcat
    • 部署CAS-Client相关的Tomcat
    •  測试验证SSO


    第一:

           本demo在一个机器上实现(三个虚拟主机),来看SSO单点登录实例(我们能够布到多个机器上使用都是同一个道理的),一个server主机,和两个client虚拟主机


    <span style="font-size:18px;"># 127.0.0.1 localhost
    # ::1 localhost
    
    127.0.0.1 localhost
    127.0.0.1 www.bbs.itcast.cn
    127.0.0.1 www.news.itcast.cn
    127.0.0.1 www.news.com
    127.0.0.1 www.bbs.com
    127.0.0.1 www.server.com
    </span></span></span>


    第二:在tomcat的根文件夹下。分别建立三个文件夹,即server、bbs、news。

                  在三个文件夹下,分别都建立一个ROOT(ROOT是tomcat的主默认主页文件夹)文件夹。

                  将cas-server.xx.war解压后散放到/tomcat/server/ROOT文件夹下。

    例如以下图:

    注意文件夹结构,是散放到ROOT的文件夹下。

    第三步:先測试server能否够正常使用

     启动tomcat,在地址栏输入:

     http://www.server.com:8080(由于我没有改动port默认值)


    username与password同样就能够登录,默认



    请先保证在单个server上登录能够登录成功。

    假设不能登录成功,请反复前面的配置。

    第四步:配置两个client

           将下载的文件mywebapp.war分别解压到tomcat/bbs/ROOT文件夹下和tomcat/news/ROOT文件夹下。注意是散放到ROOT文件夹下。

    因为在mywebapp.war中并没有放置依赖的jar文件。所以,还须要我们加入它所依赖的jar文件,为此我为大家准备了已经放放置好的

    mywebapp.war文件。

    放置好的文件夹结构例如以下:


    WEB-INF/lib文件夹下的包例如以下:

    cas-client-core-3.2.1.jar

    commons-logging-1.1.jar

    这两个包,在cas-client.rar文件里都能够找到。

    此处,你能够启动一个tomcat。假设启动成功。则进入下一步。

    第五步:改动client的配置文件

           当使用登录client受保护的资源时,假设发现还没有登录。则会重定向到server(售票处)请求登录验证,登录成功后即会获取一张票据,server会携带这张票据再重定向到client页面。

    改动client的web.xml配置文件,让它在登录时,知道去哪台server:

    注意将里面的https所有改动成http。

    改动的部分主要分为两块:

    1:改动登录重定向过虑器,它用于保护受保护的资源,假设发面用户在訪问受保护的资源时。用户还没有登录。则会重定向到server,要求用户登录:

    <span style="font-size:18px;"><filter>
    	<!--配置登录过滤器。注意负责在登录时重定到服务器页面-->
    		<filter-name>CAS Authentication Filter</filter-name>
    		<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
    		<init-param>
    		<!--到服务器地址,注意后面的/login-->
    			<param-name>casServerLoginUrl</param-name>
    			<param-value>http://www.server.com:8080/login</param-value>
    		</init-param>
    		<init-param>
    		<!--本程序所在的URL-->
    			<param-name>serverName</param-name>
    			<param-value>http://www.news.com:8080</param-value>
    		</init-param>
    		<init-param>
    			<param-name>renew</param-name>
    			<param-value>false</param-value>
    		</init-param>
    		<init-param>
    			<param-name>gateway</param-name>
    			<param-value>false</param-value>
    		</init-param>
    	</filter></span>

    第六步:測试登录

           眼下还不能实现单点登录。

    但能够对随意的一个client进行登录验证。

    1、 在地址栏输入

    http://www.news.com:8080

    点击訪问受保护的页面:got to protected area

    将重定向到server请求登录:


    登录成功后即重定回原请求页面:



    第七步:配置能够单点登录

           Casserver都是用spring配置文件配置而成。

    且使用了cookie技术。在ticketGrantingTicketCookieGenerator.xml文件里,保存了cookie的生成方式及有效时间。


    注意,这是在server服务器上的spring配置文件。

    打开此文件。改动成下面内容:


    <span style="font-size:18px;"><bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
    		p:cookieSecure="false"
    		p:cookieMaxAge="3600"
    		p:cookieName="mycas"
    		p:cookiePath="/" /></span>

    说明:false是指支持http协议登录。默觉得true,支持https登录。

            3600中cookie保存在本地的时间。默觉得-1即浏览器缓存。

       cookiePath是cookie的path设置。

    第八步:单点登录測试

           改动了上面文件后,就可以測试能否够从一个点的登录,即能够訪问两个站点时都显示先登录的姓名:

           先输入http://www.news.com:8080


    在地址栏直接输入:www.bbs.com:8080



    能够看到,显示的是newsusername。即之前在www.news.com上登录的username,即实现单点登录。


    好了,以上步骤,完毕。假设能够配置成功。再进入下一步。


    总结

            以上都是在建立在SSO的war下实现的单点登录的效果,最简单的效果。最简单的入门操作,

    在CAS的主页上,能够看到CASserver,和client配置的完整过程,依据提示,全然能够配置成功server和client。

    同一时候,在CAS上也能够找到server端的程序和client的程序。都是已经配置好的,对于初步学习来说。全然能够直接取来配置測试。以上就是直接使用CAS官方提供的演示样例server和演示样例client配置一个单点登录的演示样例!



    下篇在Eclipse环境中开发SSO


  • 相关阅读:
    pythone 请求响应字典
    python strip()
    python,datetime
    How Flask Routing Works
    python __file__ 与argv[0]
    Python的zip函数
    Python中的__new__()方法与实例化
    python,dict的setdefault方法
    python yield
    python with用法
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6740621.html
Copyright © 2020-2023  润新知