【轉】Yale_CAS客戶端配置說明

Java Web應用

使用cas-client-3.1.12 Javaphp

 

設置filterweb

<!-- 用於單點退出,該過濾器用於實現單點登出功能,可選配置-->服務器

<listener>session

         <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>app

</listener>curl

 

<!-- 該過濾器用於實現單點登出功能,可選配置。 -->url

<filter>spa

         <filter-name>CAS Single Sign Out Filter</filter-name>debug

         <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>code

</filter>

<filter-mapping>

         <filter-name>CAS Single Sign Out 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://sso.wsria.com:8443/cas/login</param-value>

                 <!--這裏的server是服務端的IP-->

         </init-param>

         <init-param>

                 <param-name>serverName</param-name>

                 <param-value>http://localhost:10000</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.wsria.com:8443/cas</param-value>

         </init-param>

         <init-param>

                 <param-name>serverName</param-name>

                 <param-value>http://localhost:10000</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>

 

<!-- 自動根據單點登陸的結果設置本系統的用戶信息 -->

<filter>

         <display-name>AutoSetUserAdapterFilter</display-name>

         <filter-name>AutoSetUserAdapterFilter</filter-name>

         <filter-class>com.wsria.demo.filter.AutoSetUserAdapterFilter</filter-class>

</filter>

<filter-mapping>

         <filter-name>AutoSetUserAdapterFilter</filter-name>

         <url-pattern>/*</url-pattern>

</filter-mapping>

<!-- ============== 單點登陸結束 === -->

 

使用版本3.x用如下方法得到用戶名:

request.getRemoteUser()

前提是配置了CAS HttpServletRequest Wrapper Filter

 

 

.NET

1.使用casModule-1.0.1

2.添加casModule.dll的引用

3.web.confg文件添加如下配置:

<appSettings>

    <add key="loginUrl" value="https://cas.server/login" />

    <add key="validateUrl" value="https://cas.server/serviceValidate" />

    <add key="logoutUrl" value="https://cas.server/logout" />

  </appSettings>

<system.web>
    ...
    <httpModules>
      <add name="CasModule" type="Upmc.CasModule.CasModule, CasModule"/>
    </httpModules>
    ...
  </system.web>

<authentication mode="None">

    </authentication>

    <authorization>

        <allow users="*"/>

</authorization>

 

PHP

1.增長Apache ssl_module模塊

2.增長php_curl模塊

3.使用到的文件或目錄:CAS-php-1.2.2/CAS.phpCAS-php-1.2.2/CAS目錄.

4.修改configCAS目錄與服務器相關的配置:

 $phpcas_path

$cas_host

5.調用phpCAS::getUser()得到用戶名.

6.在每一個受保護的頁面開關加如下代碼:

<?php

include_once('config.php');

include_once($phpcas_path.'/CAS.php');

phpCAS::setDebug();// Uncomment to enable debugging

phpCAS::client(CAS_VERSION_2_0, $cas_host, $cas_port, $cas_context);

// 必須調用如下兩個方法中的一個:phpCAS::setCasServerCACert(),phpCAS::setNoCasServerValidation()

// phpCAS::setCasServerCACert($cas_server_ca_cert_path); // 設置證書的路徑

phpCAS::setNoCasServerValidation();

phpCAS::forceAuthentication();

if (isset($_REQUEST['logout'])) { // logout if desired

    phpCAS::logout();

}

?>

相關文章
相關標籤/搜索