CAS实现单点登录(身份验证)

电脑杂谈  发布时间:2020-04-10 00:05:38  来源:网络整理

ibm 单点登录_中华联合财产保险点单登录_易查单登录网址

此CAS(中央身份验证服务)是耶鲁大学的一个开源项目,旨在实现企业应用程序的单点登录. 还是很好. 牛B大学的确与众不同,不是我们的2b学校式教育. 不幸的是,它的官方网站应该在进入之前先经过墙. 让我们自己过去. 建议是GoAgent.

1.jdk7_45
2.tomcat7_45
3.三台虚拟机:
   1.tomcat1(部署cas验证服务器)
   2.tomcat2(其中部署了两个web应用cas-web-client, cas-web-client2)
   3.mysql server一台(直接到种验证)

将其解压缩,jar将位于modules目录中,其余为源代码项目

打包的服务器:

客户端:

---------------------------------- ------ -------

开始构建:

中华联合财产保险点单登录_ibm 单点登录_易查单登录网址

1. 在tomcat1所在的计算机上生成一个证书:

这时,将在用户的主目录中生成一个.keystore文件. 也可以在以上命令类型中指定此文件,在生成过程中将填充一些信息. 机器的域名(不能使用IP),这里是我的:

2. 导出证书(稍后将其导入到客户端的jre环境中):

用户的主目录中有一个ssotest.crt证书文件(已保留ibm 单点登录,稍后将使用客户端配置),

3. 配置Tomcat SSL: 将$ {TOMCAT_HOME} /conf/server.xml中的第83-93行修改为:

易查单登录网址_中华联合财产保险点单登录_ibm 单点登录

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
       maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
       clientAuth="false" sslProtocol="TLS"
       keystoreFile="C:\Users\Administrator\.keystore" 
       keystorePass="123456" />

4. 在上面的下载资源中将cas-server-webapp-3.5.2.war重命名为cas.war,将其复制到$ {TOMCAT_HOME} / webapps /,启动tomcat,然后输入: 8443 / cas /,如下图所示,服务器已配置成功:

这时,输入用户名和密码(可以保持相同,只要用户名和密码相同,默认的CAS身份验证方法就可以了),可以看出默认的身份验证实现类SimpleTestUsernamePasswordAuthenticationHandler :

public final class SimpleTestUsernamePasswordAuthenticationHandler extends
    AbstractUsernamePasswordAuthenticationHandler {
    public boolean authenticateUsernamePasswordInternal(final UsernamePasswordCredentials credentials) {
        final String username = credentials.getUsername();
        final String password = credentials.getPassword();
        if (StringUtils.hasText(username) && StringUtils.hasText(password)
            && username.equals(getPasswordEncoder().encode(password))) {//用户名及密码相同就成功
            return true;
        }
        return false;
    }
}

通过这种方式,CAS服务器是默认配置的,我们稍后将配置验证.

1. 生成.keystore(与上面相同);

2. 将导出的ssotest.crt证书从CAS服务器复制到目录中ibm 单点登录,并将其导入到客户端计算机的jre运行环境中:

keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file ~/ssotest.crt -alias ssotest
# NOTE: 有可能会有异常:java.io.IOException: Keystore was tampered with, or password was incorrect. 那就先删除本机上述的cacerts文件。

3. 配置客户端Tomcat SSL(与上面相同);

易查单登录网址_ibm 单点登录_中华联合财产保险点单登录

4. 创建一个新的WEB项目cas-web-client,并添加依赖包: cas-client-core-3.2.1.jar,commons-logging-1.1.jar

5. 配置web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
    <display-name>cas-web-client2</display-name>
    <listener>
        <listener-class>
            org.jasig.cas.client.session.SingleSignOutHttpSessionListener
        </listener-class>
    </listener>
    <filter>
        <filter-name>CasSingleSignOutFilter</filter-name>
        <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CasSingleSignOutFilter</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><!-- Cas Server登录url-->
            <param-value>https://www.tomcat1.com:8443/cas/login</param-value>
        </init-param>
        <init-param><!-- 配置当前web应用所在的web服务器域名url -->
            <param-name>serverName</param-name>
            <param-value>http://www.tomcat2.com:8080</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CASFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>CasTicketFilter</filter-name>
        <filter-class>
            org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
        <init-param>
            <param-name>casServerUrlPrefix</param-name>
            <param-value>https://www.tomcat1.com:8443/cas</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>http://www.tomcat2.com:8080</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CasTicketFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>CasRequestWrapFilter</filter-name>
        <filter-class>
            org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CasRequestWrapFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>AssertionThreadLocalFilter</filter-name>
        <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>AssertionThreadLocalFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-169961-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 刘沿沿
      刘沿沿

      那个愿意搞个合娶

    • 沈明叔
      沈明叔

      然后就宣布十二海里领海权

    • 周禹行
      周禹行

      千玺好棒送一朵小红花

    热点图片
    拼命载入中...