• 配置单点登录


    配置CAS基本步骤:

    1、使用java自带keytool创建本地密钥库

    2、将创建过的证书导入到java证书库

    3、在tomcat配置文件中配置https证书访问

    4、导入cas-server到eclipse

    5、创建并配置cas-client

    完成

    下面开始逐步介绍:

    1、使用java自带keytool创建本地密钥库

    创建本地密钥库命令:
    keytool -genkey -alias testkey -keyalg RSA -keystore "C:Program FilesJavaTestkey"

    -alias : 这里的testkey是别名,根据个人自定义

    -keystore  :这里是声明生成key的位置(稍后会用到)

    输入上述命令后,会让你输入密钥库口令(记住密码)

    确认密码之后,会让你输入一些证书信息(注意:红框这里一定要输入你的域名)如何创建域名请看此文章

    把密钥库导出成证书文件,输入命令:

    keytool -export -file "C:Program FilesJava estkey.crt" -alias testkey -keystore "C:Program FilesJavaTestkey"

    -file:定义输出文件的路径和名称

    -alias:证书的别名(之前定义的)

    -keystore:密钥库的存储路径

    2、将创建过的证书导入到java证书库

    把上面的证书导入到客户端JDK密钥库中(JDK证书密钥库默认密码:changeit):

    keytool -import -keystore "C:Program FilesJavajdk1.7.0_79jrelibsecuritycacerts" -file "C:Program FilesJava estkey.crt" -alias testkey

    3、在tomcat配置文件中配置https证书访问

    在你tomcat安装路径conf目录下,修改server.xml配置文件中添加如下配置:

    [html] view plain copy
     
     
    print?
    1. <Connector SSLEnabled="true" clientAuth="false"   
    2.      keystoreFile="C:/Program Files/Java/Testkey" keystorePass="testkey"   
    3.      maxThreads="150" port="8443" protocol="org.apache.coyote.http11.Http11Protocol"   
    4.      scheme="https" secure="true" sslProtocol="TLS"/>  
     <Connector SSLEnabled="true" clientAuth="false" 
    		 keystoreFile="C:/Program Files/Java/Testkey" keystorePass="testkey" 
    		 maxThreads="150" port="8443" protocol="org.apache.coyote.http11.Http11Protocol" 
    		 scheme="https" secure="true" sslProtocol="TLS"/>

    keystoreFile:刚刚创建的密钥库路径

    keystorePass : 密钥库口令



    4、导入cas-server到eclipse

    下载cas-server的zip包,解压后在modules目录下可以找到  cas-server-webapp-3.4.10.war 

    导入到eclipse中,改名为cas-server

    启动tomcat,测试一下访问cas-server(在你第一次访问的时候会出现一个拦截页面,这是你只需要选择继续访问即可)

    输入相同的帐号密码即可,因为默认的cas校验是允许帐号密码相同的登录成功

    5、创建并配置cas-client

    创建一个web project

    在index.jsp中随便写点什么

    修改web.xml

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


    好了现在,copy一下,复制出另一个web project,修改一下index.jsp中内容,做一下对比

    现在重启tomcat可以访问client的web project了

    这时 访问你的web project路径时,会自动跳转到刚才的页面

    登录成功后:

    这个时候在输入第二个web project,已经不需要认证了,直接可以访问到index.jsp

    好了,现在已经配置成功了,之后我会发出使用数据库认证方式,这样就可以应用到我的项目中去了

  • 相关阅读:
    python 全栈开发,Day34(基于UDP协议的socket)
    python 全栈开发,Day33(tcp协议和udp协议,互联网协议与osi模型,socket概念,套接字(socket)初使用)
    python 全栈开发,Day32(知识回顾,网络编程基础)
    python 全栈开发,Day30(第一次面向对象考试)
    python 全栈开发,Day30(纸牌游戏,异常和错误,异常处理)
    python 全栈开发,Day29(昨日作业讲解,模块搜索路径,编译python文件,包以及包的import和from,软件开发规范)
    python 全栈开发,Day28(复习,os模块,导入模块import和from)
    python 全栈开发,Day27(复习, defaultdict,Counter,时间模块,random模块,sys模块)
    python 全栈开发,Day26(hashlib文件一致性,configparser,logging,collections模块,deque,OrderedDict)
    css关系选择符
  • 原文地址:https://www.cnblogs.com/jianglaoda/p/8966296.html
Copyright © 2020-2023  润新知