• 单点登录CAS-Demo


     
     

    1,安全证书配置

    CAS默认使用HTTPS协议,如果对安全要求不高,可使用HTTP协议。

    修改为HTTP协议的步骤如下:

    修改deployerConfigContext.xml 增加参数p:requireSecure="false",意为:不需要安全验证。

     

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"p:httpClient-ref="httpClient"  
    2. p:requireSecure="false"/>  

    修改 ticketGrantingTicketCookieGenerator.xml (路径:cas/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml)ticketGrantingTicketCookieGeneratorp:cookieSecure 属性的值改为 false

     

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <bean id="ticketGrantingTicketCookieGenerator"class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"  
    2. p:cookieSecure="false"p:cookieMaxAge="-1" p:cookieName="CASTGC"p:cookiePath="/cas" />  

    2,部署服务端CAS-Server

    CAS-Server下载地址:http://www.jasig.org/cas/download

    解压cas-server-3.4.11-release.zip提取cas-server-3.4.11/modules/cas-server-webapp-3.4.11.war文件,把改文件copyTomcat下,如,D: omacat-casServerwebapps目下,并重命名为:cas.war.

    启动tomacat-casServer,在浏览器地址栏输入:http://localhost:8080/cas/login ,回车

    CAS-server的默认验证规则:只要用户名和密码相同就认证通过(仅仅用于测试,生成环境需要根据实际情况修改),输入admin/admin点击登录,就可以看到登录成功的页面:

    CAS-Server部署成功。

    3,部署CAS-Client

    CAS-Client下载地址:http://downloads.jasig.org/cas-clients/

    (1)解压cas-client-3.2.1-release.zip提取cas-client-3.2.1/modules/cas-client-core-3.2.1.jar

    (2)tomcat默认自带的 webappsexamples项目作为客户端 

    (3)安装配置 tomcat-client1

    解压apache-tomcat-7.0.6并重命名为tomcat-client1

    ,修改tomcat的启动端口(共计5处),在文件conf/server.xml文件找到如下内容:

     

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <Server port="8005" shutdown="SHUTDOWN">  
    2. <Connector port="8080" protocol="HTTP/1.1"  
    3.   connectionTimeout="20000"  
    4.   redirectPort="8443" />  
    5. <Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />  

    修改成如下:

     

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <Server port="18005" shutdown="SHUTDOWN">  
    2. <Connector port="18080" protocol="HTTP/1.1"  
    3.   connectionTimeout="20000"  
    4.   redirectPort="18443" />  
    5. <Connector port="18009" protocol="AJP/1.3"redirectPort="18443" />  

    (4)启动tomcat-app1,浏览器输入http://localhost:18080/examples/servlets/回车:

    tomcat-client的配置成功。

    (5)复制 clientlibcas-client-core-3.2.1.jarcommons-logging-1.1.jartomcat-clientwebappsexamplesWEB-INFlib目录下,tomcat-clientwebappsexamplesWEB-INFweb.xml 文件中添加如下配置:

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <!-----------------单点登录开始---------------------------->  
    2.                 <!--用于单点退出,该过滤器用于实现单点登出功能,可选配置-->  
    3.                 <listener>  
    4.                         <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>  
    5.                 </listener>  
    6. <!--该过滤器用于实现单点登出功能,可选配置。 -->  
    7.                 <filter>  
    8.                         <filter-name>CASSingle Sign Out Filter</filter-name>  
    9.                         <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>  
    10.                 </filter>  
    11.                 <filter-mapping>  
    12.                         <filter-name>CASSingle Sign Out Filter</filter-name>  
    13.                         <url-pattern>/*</url-pattern>  
    14.                 </filter-mapping>  
    15. <filter>  
    16.                         <filter-name>CASFilter</filter-name>  
    17.                         <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>  
    18.                         <init-param>  
    19.                                 <param-name>casServerLoginUrl</param-name>  
    20.                                 <param-value>https://demo.micmiu.com:8443/cas/login</param-value>  
    21.                         </init-param>  
    22.                         <init-param>  
    23.                                 <param-name>serverName</param-name>  
    24.                                 <param-value>http://app1.micmiu.com:18080</param-value>  
    25.                         </init-param>  
    26.                 </filter>  
    27.                 <filter-mapping>  
    28.                         <filter-name>CASFilter</filter-name>  
    29.                         <url-pattern>/*</url-pattern>  
    30.                 </filter-mapping>  
    31.                 <!--该过滤器负责对Ticket的校验工作,必须启用它 -->  
    32.                 <filter>  
    33.                         <filter-name>CASValidation Filter</filter-name>  
    34.                         <filter-class>  
    35.                                 org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>  
    36.                         <init-param>  
    37.                                 <param-name>casServerUrlPrefix</param-name>  
    38.                                 <param-value>https://demo.micmiu.com:8443/cas</param-value>  
    39.                         </init-param>  
    40.                         <init-param>  
    41.                                 <param-name>serverName</param-name>  
    42.                                 <param-value>http://app1.micmiu.com:18080</param-value>  
    43.                         </init-param>  
    44.                 </filter>  
    45.                 <filter-mapping>  
    46.                         <filter-name>CASValidation Filter</filter-name>  
    47.                         <url-pattern>/*</url-pattern>  
    48.                 </filter-mapping>  
    49. <!--  
    50.                         该过滤器负责实现HttpServletRequest请求的包裹,  
    51.                         比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。  
    52.                 -->  
    53.                 <filter>  
    54.                         <filter-name>CASHttpServletRequest Wrapper Filter</filter-name>  
    55.                         <filter-class>  
    56.                                 org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>  
    57.                 </filter>  
    58.                 <filter-mapping>  
    59.                         <filter-name>CASHttpServletRequest Wrapper Filter</filter-name>  
    60.                         <url-pattern>/*</url-pattern>  
    61.                 </filter-mapping>  
    62. <!--  
    63.                 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。  
    64.                 比如AssertionHolder.getAssertion().getPrincipal().getName()。  
    65.                 -->  
    66.                 <filter>  
    67.                         <filter-name>CASAssertion Thread Local Filter</filter-name>  
    68.                         <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>  
    69.                 </filter>  
    70.                 <filter-mapping>  
    71.                         <filter-name>CASAssertion Thread Local Filter</filter-name>  
    72.                         <url-pattern>/*</url-pattern>  
    73.                 </filter-mapping>  
    74. <!--------------------------------单点登录结束 ------------------------------->  

    (6)

    安装配置 tomcat-client2

    解压apache-tomcat-7.0.6并重命名为tomcat-client2

    ,修改tomcat的启动端口(共计5处),在文件conf/server.xml文件找到如下内容:

     

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <Server port="8005" shutdown="SHUTDOWN">  
    2. <Connector port="8080" protocol="HTTP/1.1"  
    3.   connectionTimeout="20000"  
    4.   redirectPort="8443" />  
    5. <Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />  

     

    修改成如下:

     

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <Server port="28005" shutdown="SHUTDOWN">  
    2. <Connector port="28080" protocol="HTTP/1.1"  
    3.   connectionTimeout="20000"  
    4.   redirectPort="28443" />  
    5. <Connector port="28009" protocol="AJP/1.3"redirectPort="28443" />  

    以下其他步骤同配置tomcat-client1

    4,测试SSO

    分别启动tomcat-casServertomcat-client1tomcat-client2

     

    测试流程:打开client1 url —->跳转cas server 验证 —->显示client1 的应用 —->打开client2 url —-> 显示client2应用 —->注销cas server —->打开client1/client2 url->重新跳转到cas server验证.

     

    动手操作,观察单点登录效果。

  • 相关阅读:
    css3之背景background-origin,background-clip,background-size
    css3之字体@font-face
    css3之文本text-overflow 与 word-wrap, word-break
    Ng第十二课:支持向量机(Support Vector Machines)(三)
    Ng第十二课:支持向量机(Support Vector Machines)(二)
    Ng第十二课:支持向量机(Support Vector Machines)(一)
    Ng第十一课:机器学习系统的设计(Machine Learning System Design)
    Ng第十课:应用机器学习的建议(Advice for Applying Machine Learning)
    Ng第九课:神经网络的学习(Neural Networks: Learning)
    Ng第八课:神经网络表述(Neural Networks: Representation)
  • 原文地址:https://www.cnblogs.com/accumulater/p/6587127.html
Copyright © 2020-2023  润新知