文档中心 > API文档

3.30.3.3.2. 配置OA

致远OA产品在V5.1版本已经内置了大部分的CAS相关的配置,对于CAS服务器来说,OA服务器就是CAS服务器的客户端,具体如下:

  1. 打开webapps\seeyon\WEB-INF\web.xml文件,在第一个filter前添加如下配置:

    <!-- ======================== 单点登录开始 ======================== -->
     <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置-->
       <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>
         com.seeyon.cmp.authentication.cas.client.validation.CMPReceivingTicketValidationFilter</filter-class>
        <init-param>
         <param-name>casServerUrlPrefix</param-name>
         <param-value>https://m1.ssodemo.com:8443/cas</param-value>
        </init-param>
        <init-param>
         <param-name>serverName</param-name>
         <param-value>http://oa.ssodemo.com:8082</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>
     <!-- ======================== 单点登录结束 ======================== -->

    注意:有两个变量要根据部署环境的变化进行修改:

    casServerUrlPrefix:CAS服务器地址

    serverName:OA服务器自己的地址

  2. 打开webapps\seeyon\WEB-INF\cfgHome\plugin\cmp\login.xml文件,修改配置如下:

    <?xml version="1.0" encoding="UTF-8"?>
     <login>
      <bean class="com.seeyon.cmp.authentication.CTPUsernamePasswordLoginAuthentication"
       before="com.seeyon.ctp.login.auth.DefaultLoginAuthentication" />
       
      <!-- <bean class="com.seeyon.cmp.authentication.CTPTicketLoginAuthentication"
       before="com.seeyon.ctp.portal.sso.login.SSOTicketLoginAuthentication" /> -->
     </login>

    关闭并保存文件。

  3. 打开webapps\seeyon\WEB-INF\cfgHome\plugin\cmp\spring\spring-cmp-authentication.xml,修改配置如下:

    <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     <beans default-autowire="byName">
     
      <bean id="cmpSSOLogout"
       class="com.seeyon.cmp.authentication.CMPSSOLogout"
       singleton="true">
       <property name="ssoAuthentication" ref="cmpUsernamePasswordCASAuthentication" />
      </bean>
      
      <bean id="cmpUsernamePasswordAuthentication"
       class="com.seeyon.cmp.authentication.cas.CMPUsernamePasswordCASAuthentication"
       singleton="true">
       <property name="serverUrl" value="https://m1.ssodemo.com:8443/cas/v1/tickets/" />
      </bean>
     
      <bean id="cmpTicketValidation"
       class="com.seeyon.cmp.authentication.cas.CMPTicketCASValidation" 
       singleton="true">
       <property name="serverUrl" value="https://m1.ssodemo.com:8443/cas/v1/tickets/" />
       <property name="serviceUrl" value="http://oa.ssodemo.com:8082/seeyon/ajax.do" />
      </bean>
     </beans>

    注意:该配置在文件中已经默认存在,这里只需修改serverUrl和serviceUrl地址即可,与web.xml中访问的域名一致,修改完成以后关闭并保存文件。

    至此,OA部分的配置已经全部完成,使用OA用户名和密码登录成功,则返回值中会包含ticket,这个ticket将用于其他第三方应用进行登录认证: