2012-03-23 123 views
10

任何人都可以通過簡單的步驟來將Spring安全和CAS集成到這裏進行單點登錄和單點登出。 注意我不想要任何基於角色的訪問。我有一個已經與彈簧安全性集成的Web應用程序。現在,我試圖用CAS進行單點登錄,但我得到這個錯誤sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetSpring Security和CAS集成

這是我當年春季的security.xml

 <?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:sec="http://www.springframework.org/schema/security" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd 
     http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd 
     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/security 
     http://www.springframework.org/schema/security/spring-security-3.1.xsd 
     "> 

<sec:http entry-point-ref="casProcessingFilterEntryPoint" > 
     <sec:intercept-url pattern="/**" access="ROLE_USER" /> 
     <sec:logout logout-success-url="/loggedout.jsp" invalidate-session="true"/> 
     <sec:custom-filter ref="casAuthenticationFilter" after="CAS_FILTER"/> 
    </sec:http> 

    <sec:authentication-manager alias="authenticationManager"> 
     <sec:authentication-provider ref="casAuthenticationProvider"/> 
    </sec:authentication-manager> 

<bean id="casAuthenticationFilter" class="org.springframework.security.cas.web.CasAuthenticationFilter"> 
     <property name="authenticationManager" ref="authenticationManager"/> 
     <property name="authenticationFailureHandler"> 
      <bean class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler"> 
       <property name="defaultFailureUrl" value="/casfailed.jsp"/> 
      </bean> 
     </property> 
     <property name="authenticationSuccessHandler"> 
      <bean class="org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler"> 
       <property name="defaultTargetUrl" value="/"/> 
      </bean> 
     </property> 
    </bean> 

    <bean id="casProcessingFilterEntryPoint" class="org.springframework.security.cas.web.CasAuthenticationEntryPoint"> 
     <property name="loginUrl" value="https://cegicollabdev.india.xxx.com:8443/cas/login"/> 
     <property name="serviceProperties" ref="serviceProperties"/> 
    </bean> 

    <bean id="casAuthenticationProvider" class="org.springframework.security.cas.authentication.CasAuthenticationProvider"> 
     <property name="userDetailsService" ref="userService"/> 
     <property name="serviceProperties" ref="serviceProperties" /> 
     <property name="ticketValidator"> 
      <bean class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator"> 
       <constructor-arg index="0" value="https://cegicollabdev.india.tcs.com:8443/cas" /> 
       </bean> 
     </property> 
     <property name="key" value="an_id_for_this_auth_provider_only"/> 
    </bean> 


    <bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties"> 
     <property name="service" value="http://localhost:8080/dbcomparision/j_spring_cas_security_check"/> 
     <property name="sendRenew" value="false"/> 
    </bean> 

    <bean id="userService" class="com.tcs.ceg.services.impl.UserServiceImpl" /> 

<!--  <sec:global-method-security pre-post-annotations="enabled" /> 

    <sec:http pattern="/css/**" security="none"/> 
    <sec:http pattern="/images/**" security="none"/> 
    <sec:http pattern="/js/**" security="none"/> 
    <sec:http pattern="/index.jsp" security="none"/> 
    <sec:http pattern="/app/addNewUser.json" security="none"/> 
    <sec:http pattern="/dbcomplogin.jsp" security="none"/> 
    <sec:http pattern="/loggedout.jsp" security="none"/> 

    <sec:http use-expressions="true">--> 
     <!-- 
      Allow all other requests. In a real application you should 
      adopt a whitelisting approach where access is not allowed by default 
      --> 
     <!-- <sec:intercept-url pattern="/**" access="isAuthenticated()" /> 
     <sec:form-login login-page='/dbcomplogin.jsp' 
      authentication-failure-url="/dbcomplogin.jsp?login_error=1" 
      default-target-url="/index.jsp" /> 
     <sec:logout logout-success-url="/loggedout.jsp" delete-cookies="JSESSIONID"/> 
     <sec:remember-me /> 

    </sec:http> 

    <bean id="myUserService" class="com.tcs.ceg.services.impl.UserServiceImpl" /> 
    <sec:authentication-manager> 
    <sec:authentication-provider user-service-ref="myUserService" /> 
    </sec:authentication-manager> --> 

</beans> 

這是我的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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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>Spring3MVC</display-name> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      /WEB-INF/spring-rootcontext.xml 
      /WEB-INF/spring-security.xml 
     </param-value> 
    </context-param> 
     <filter> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <!-- 
     - Loads the root application context of this web app at startup. 
    --> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 


    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>/app/*</url-pattern> 
    </servlet-mapping> 
<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> 
    <listener> 
     <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> 
    </listener> 

</web-app> 

這是我的春天rootcontext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:jee="http://www.springframework.org/schema/jee" 
    xmlns:lang="http://www.springframework.org/schema/lang" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd 
     http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd 
     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd" > 
    <context:annotation-config /> 
<mvc:annotation-driven /> 
    <context:component-scan 
     base-package="com.tcs.ceg" /> 

<jee:jndi-lookup id="dataSource1" jndi-name="jdbc/PmdDS"/> 


    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource1" /> 
     <property name="configLocation"> 
      <value>classpath:hibernate.cfg.xml</value> 
     </property> 
     <property name="configurationClass"> 
      <value>org.hibernate.cfg.AnnotationConfiguration</value> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="current_session_context_class">thread</prop> 
       <prop key="cache.provider_class">org.hibernate.cache.NoCacheProvider</prop> 
       <prop key="hibernate.connection.release_mode">auto</prop> 
      </props> 
     </property> 
    </bean> 



    <tx:annotation-driven /> 
    <bean id="transactionManager" 
     class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 
    </beans> 

這是我的spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:jee="http://www.springframework.org/schema/jee" 
    xmlns:lang="http://www.springframework.org/schema/lang" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd 
     http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd 
     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd" > 



    <bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass"> 
     <value> 
      org.springframework.web.servlet.view.tiles2.TilesView 
     </value> 
    </property> 
    </bean> 
    <bean id="tilesConfigurer" 
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/tiles.xml</value> 
     </list> 
    </property> 
</bean> 
<bean id="messageSource" 
    class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
    <property name="basename" value="classpath:messages" /> 
    <property name="defaultEncoding" value="UTF-8"/> 
</bean> 

<bean id="localeChangeInterceptor" 
    class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> 
    <property name="paramName" value="lang" /> 
</bean> 

<bean id="localeResolver" 
    class="org.springframework.web.servlet.i18n.CookieLocaleResolver"> 
    <property name="defaultLocale" value="en"/> 
</bean> 

<bean id="handlerMapping" 
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 
    <property name="interceptors"> 
     <ref bean="localeChangeInterceptor" /> 
    </property> 
</bean> 



    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
     <!-- one of the properties available; the maximum file size in bytes --> 
     <property name="maxUploadSize" value="1000000000000"/> 
    </bean> 
</beans> 

問題:1個sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

問題2:自定義UserServiceimpl是沒有得到所謂的

問題3:這是正確的嗎? <property name="service" value="http://localhost:8080/dbcomparision/j_spring_cas_security_check"/>,注意在我的程序中沒有請求映射j_spring_cas_security_check

回答

5

獲取CAS認證工作的最簡單步驟是從Spring Security源代碼樹構建並運行CAS sample

您真的需要了解CAS在您嘗試使用它之前是如何工作的,或者將它與您的應用程序集成在一起。我將從CAS文檔和描述interactions between CAS and Spring Security的Spring Security參考手冊開始。

j_spring_cas_security_check是CAS對用戶進行身份驗證(請參閱上面的鏈接)後CAS重定向到的URL。

即使您的應用程序未對用戶進行身份驗證,它仍然通常具有其所瞭解的用戶概念。它還必須加載這些用戶的角色,CAS不處理,因此user-service聲明。密碼將不會被使用。

上面的文檔解釋了您的應用程序驗證登錄是否成功的方式。它基本上調用CAS服務器,傳入服務票據並用用戶名獲取響應。

+0

我編輯了這個問題?再次得到問題,無法解決..請幫助 – Rajesh 2012-03-30 07:28:14

+0

現在得到這個錯誤..任何想法如何解決?引起:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路徑構建失敗:太陽。 security.provider.certpath.SunCertPathBuilderException:無法找到有效的證書路徑到請求的目標 \t at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) – Rajesh 2012-03-30 11:18:04

1

無論如何單點登錄完成..它花了很多時間來模擬,但相信我,如果你有一個心智設置,你想這樣做然後無論如何你會成功..有解決方案.. 這裏是我更新的彈簧security.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:sec="http://www.springframework.org/schema/security" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd 
     http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd 
     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/security 
     http://www.springframework.org/schema/security/spring-security-3.1.xsd 
     "> 

<sec:http entry-point-ref="casProcessingFilterEntryPoint" > 
     <sec:intercept-url pattern="/**" access="ROLE_ADMIN" /> 
     <sec:logout logout-success-url="https://abc.com:8443/cas/logout" delete-cookies="JSESSIONID"/> 
     <sec:custom-filter ref="requestSingleLogoutFilter" before="LOGOUT_FILTER"/> 
    <sec:custom-filter ref="singleLogoutFilter" before="CAS_FILTER"/> 
     <sec:custom-filter ref="casAuthenticationFilter" after="CAS_FILTER"/> 
    </sec:http> 

    <sec:authentication-manager alias="authenticationManager"> 
     <sec:authentication-provider ref="casAuthenticationProvider"/> 
    </sec:authentication-manager> 

<bean id="casAuthenticationFilter" class="org.springframework.security.cas.web.CasAuthenticationFilter"> 
     <property name="authenticationManager" ref="authenticationManager"/> 
     <property name="authenticationFailureHandler"> 
      <bean class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler"> 
       <property name="defaultFailureUrl" value="/casfailed.jsp"/> 
      </bean> 
     </property> 
     <property name="authenticationSuccessHandler"> 
      <bean class="org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler"> 
       <property name="defaultTargetUrl" value="/"/> 
      </bean> 
     </property> 
     <property name="proxyGrantingTicketStorage" ref="proxyGrantingTicketStorage" /> 
     <property name="proxyReceptorUrl" value="/secure/receptor" /> 
    </bean> 

    <bean id="casProcessingFilterEntryPoint" class="org.springframework.security.cas.web.CasAuthenticationEntryPoint"> 
     <property name="loginUrl" value="https://abc.com:8443/cas/login"/> 
     <property name="serviceProperties" ref="serviceProperties"/> 
    </bean> 

    <bean id="casAuthenticationProvider" class="org.springframework.security.cas.authentication.CasAuthenticationProvider"> 
     <property name="userDetailsService" ref="userService"/> 
     <property name="serviceProperties" ref="serviceProperties" /> 
     <property name="ticketValidator"> 
      <bean class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator"> 
       <constructor-arg index="0" value="https://abc.com:8443/cas" /> 
       <property name="proxyGrantingTicketStorage" ref="proxyGrantingTicketStorage" /> 
       <property name="proxyCallbackUrl" value="http://localhost:8080/dbcomparision/secure/receptor" /> 

       </bean> 
     </property> 
     <property name="key" value="an_id_for_this_auth_provider_only"/> 
    </bean> 

    <bean id="proxyGrantingTicketStorage" class="org.jasig.cas.client.proxy.ProxyGrantingTicketStorageImpl" /> 
    <bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties"> 
     <property name="service" value="http://localhost:8080/dbcomparision/j_spring_cas_security_check"/> 
     <property name="sendRenew" value="false"/> 
    </bean> 

    <bean id="userService" class="com.tcs.ceg.services.impl.UserServiceImpl" /> 
    <!-- This filter handles a Single Logout Request from the CAS Server --> 
    <bean id="singleLogoutFilter" class="org.jasig.cas.client.session.SingleSignOutFilter"/> 
    <!-- This filter redirects to the CAS Server to signal Single Logout should be performed --> 
    <bean id="requestSingleLogoutFilter" 
     class="org.springframework.security.web.authentication.logout.LogoutFilter"> 
    <constructor-arg value="https://abc.com:8443/cas/logout"/> 
    <constructor-arg> 
     <bean class= 
      "org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler"/> 
    </constructor-arg> 
    <property name="filterProcessesUrl" value="/j_spring_cas_security_logout"/> 
    </bean> 

</beans> 

我更新的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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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>Spring3MVC</display-name> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      /WEB-INF/spring-rootcontext.xml 
      /WEB-INF/spring-security.xml 
     </param-value> 
    </context-param> 
     <filter> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <!-- 
     - Loads the root application context of this web app at startup. 
    --> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 


    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>/app/*</url-pattern> 
    </servlet-mapping> 
<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> 
    <listener> 
     <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> 
    </listener> 

</web-app> 

我通過複製CAS服務器 「cacerts的」 從Java文件\ JRE \ LIB \ CAS服務器的安全解決這個異常javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)到我的本地java \ jre \ lib \ security和exception被吸了。

+1

您可以發佈您的UserServiceImpl代碼嗎?這對我有很大的幫助。 – Rajkumar 2014-05-15 10:28:52

3

爲了解決這個問題

sun.security。provider.certpath.SunCertPathBuilderException:無法找到有效的認證路徑要求的目標

我們遵循3個步驟來指導我們的應用程序服務器的JDK接受CAS服務器的證書(在您的項目,它的cegicollabdev.india.tcs.com: 8443)

  1. 下載InstallCert.java,並複製到文件夾JDK'bin

    http://code.google.com/p/java-use-examples/source/browse/trunk/src/com/aw/ad/util/InstallCert.java

  2. 打開命令具有管理員權限的在線工具(如果您使用Window 7/Vista)。提示時更改爲JDK的bin文件夾,並建立該Java文件

    javac InstallCert.java

  3. 安裝CAS服務器證書

    java InstallCert cegicollabdev.india.tcs.com:8443

    命中1。

就這樣。