ビルドは、シングルサインオン、CASサーバー

  転送:https://www.cnblogs.com/rwxwsblog/p/4954795.html

  参考:https://www.cnblogs.com/yft-javaNotes/p/10645023.html#autoid-7-0-0

  参考:https://www.cnblogs.com/buwei/p/10085341.html

  参考:https://www.cnblogs.com/blazeZzz/p/9580634.html

 

  公式サイト:http://jasig.github.io/cas/

  CASサーバーのダウンロード:http://developer.jasig.org/cas/

  CASクライアントのダウンロード:http://developer.jasig.org/cas-clients/

  テスト環境:

    JDK:Javaのバージョン "1.8.0_60"

    Tomcatの:apacheの-tomcatに-7.0.65

    mysqlの:mysql5.5.40

    CASサーバー:cas-server-4.0.0-release.zip

    CASEクライアント:cas-client-3.1.12-release.zip

  このチュートリアルでは、JDKとTomcatのインストールとして、我々はオンライン情報を探すことができ、完了時にJDKとTomcatのインストールが成功したに基づいています。さて、ここで話題に。

  まず、証明書を生成します

  1、証明書を生成します。

    キーツール-genkey -alias castest -keyalg RSA -keystore F:/キー/ castest

    castestの証明書の別名を生成します。

    ここでは、「名前と姓」(、CASサーバポートは、このクラスを使用するようにしているフォローインポートおよびエクスポート証明書)とパスワードに特別な注意を払う必要があります(CASジャンプドメイン名と、それ以外の場合はエラーになります)

    

  2、証明書をエクスポートします。

    キーツール-export -file F:/keys/castest.crt -alias castest -keystore F:/キー/ castest

  セキュリティはすでに、のcacertsでそれを除去する必要性が存在する場合は、JREでクライアントへ3.証明書をインポート、(ノートでは、JREをインポートすることです)。

    keytoolの-import -keystore "D:\プログラムファイル\のJava \ jdk1.8.0_60 \ JRE \ libに\セキュリティ\ cacertsに" F -file:/keys/castest.crt -alias castest

  第二に、コンフィギュレーションサーバ

  1、ダウンロードは、modulesディレクトリにCAS-サーバのwebapp-4.0.0.warを見つけ、http://developer.jasig.org/cas/からサーバーcas-server-4.0.0-release.zipをCAS %TOMCAT_HOME%\ webappsの下にそれをコピーして、名前がcas.warに変更されました

  2、変更%TOMCAT_HOME%\ confに\ server.xmlのファイル、削除ファイルの83 行93の間にコメント、以下のように変更:

<コネクタSSLEnabled = "true" をCLIENTAUTH = "false" にいるkeystoreFile = "F:/キー/ castest" < - パス生成、証明書の名前 - >!
keystorePass = "castest" <! - 証明書のパスワード - >
maxThreadsの= "150" ポート= "8443" プロトコル= "org.apache.coyote.http11.Http11Protocol" スキーム= "https" を確保= "true" をsslProtocol = "TLS" />

  3、テストします。https:// localhostを:8443 /

  

  クリックしてこのサイトの閲覧を続行します

  

  この時点で、あなたは、通常の訪問をすることができた場合は、証明書が正常にインストールされていることを示します

  https://ではlocalhost:8443 / CAS /ログイン、表示されます

  

  口座番号とパスワードを入力します。

  casuserの
  メロン

  

  この場合、サーバが正常に設定されている示しています。HTTPSで:ログ8443 / CAS /ログアウト:// localhostを

  第三には、クライアントを設定しました

  http://developer.jasig.org/cas-clients/から1.ダウンロードcas-client-3.1.12-release.zip、modulesディレクトリにCAS-クライアントコア3.1.12.jarを見つけ、commons-プロジェクトのWEB-INF / libにコピーされたコレクションに-3.2.jar、コモンズ・ログ-1.1.jar

  2. Cのドメインマッピングを追加します:\ WINDOWS \ System32に\ drivers \ etc \ hostsファイルを追加します

    Sso.castest.com 127.0.0.1
  3. WebプロジェクトのCasClientを作成し、web.xmlのプロジェクトでフィルタを設定

复制代码
<?xml version = "1.0" エンコード= "UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

        <display-name>cas-demo</display-name>
        
        <!-- ======================== 单点登录开始 ======================== -->
        <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置-->
        <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>/CasClient/*</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://sso.castest.com:8443/cas/login</param-value>
                        <!--这里的server是服务端的IP-->
                </init-param>
                <init-param>
                        <param-name>serverName</param-name>
                        <param-value>http://localhost:8080</param-value>
                </init-param>
        </filter>
        <filter-mapping>
                <filter-name>CASFilter</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://sso.castest.com:8443/cas/</param-value><!-- 此处必须为登录url/cas/,带有任何其它路径都会报错,如“https://sso.castest.com:8443/cas/login”,这样也会报错。 -->
                </init-param>
                <init-param>
                        <param-name>serverName</param-name>
                        <param-value>http://localhost:8080</param-value>
                </init-param>
        </filter>
        <filter-mapping>
                <filter-name>CAS Validation Filter</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>
        
        <!-- ======================== 单点登录结束 ======================== -->

        <!-- session超时定义,单位为分钟 -->
        <session-config>
                <session-timeout>2</session-timeout>
        </session-config>

</web-app>
复制代码

  4. 此时访问http://localhost:8080/CasClient/Index.jsp时会自动跳转到sso.castest.com下去登录

  

  输入账号和密码casuser:Mellon

  

  此时客户端已安装成功。

  可以用类似的方式新建多个站点,站点1登录以后站点而无需登录也可访问,如果未登录则会跳转到相应的url进行登录验证。

  至此,简单的服务器搭建已经完成了。然而,此时用户的验证是通过配置文件cas\WEB-INF\deployerConfigContext.xml中指定用户名和密码的方式进行验证的。显然这不满足我们日常的需求,今天先介绍到这。下面再另行介绍通过mysql数据库验证的方式。

おすすめ

転載: www.cnblogs.com/Bkxk/p/12144557.html