2015-03-09 4 views
1

Я использую Alfresco 4.2.f, CAS-сервер 4.0.0 и CAS-клиент (который добавлен в share/web-inf/lib).Alfrsco + cas не работает Подтвердить

CAS-сервер 4.0.0 установлен на сервере server_tomcat (порт 8081 и 8444 (протокол https)). Доля установлен на alfresco_tomcat (порт 8080 и 8443 (протокол HTTPS) < --- стандартной конфигурации (server.xml):

<Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" maxHttpHeaderSize="32768" /> 
    <Connector port="8009" URIEncoding="UTF-8" protocol="AJP/1.3" redirectPort="8443" /> 

     <Connector port="8443" URIEncoding="UTF-8" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" 
        maxThreads="150" scheme="https" keystoreFile="/Applications/alfresco-4.2.f/alf_data/keystore/ssl.keystore" keystorePass="kT9X6oe68t" keystoreType="JCEKS" 
    secure="true" connectionTimeout="240000" truststoreFile="/Applications/alfresco-4.2.f/alf_data/keystore/ssl.truststore" truststorePass="kT9X6oe68t" truststoreType="JCEKS" 
        clientAuth="want" sslProtocol="TLS" allowUnsafeLegacyRenegotiation="true" maxHttpHeaderSize="32768" /> 

)

После того, как я прокомментировал в акционерном/WEB-INF/Интернет. XML:

<!-- 

    <filter> 

     <description>MT authentication support - NOTE: does not support portlets</description> 

     <filter-name>MTAuthentationFilter</filter-name> 

     <filter-class>org.alfresco.web.site.servlet.MTAuthenticationFilter</filter-class> 

    </filter> 

    --> 

<!-- 

    <filter> 

     <description>Share SSO authentication support filter.</description> 

     <filter-name>Authentication Filter</filter-name> 

     <filter-class>org.alfresco.web.site.servlet.SSOAuthenticationFilter</filter-class> 

     <init-param> 

     <param-name>endpoint</param-name> 

     <param-value>alfresco</param-value> 

     </init-param> 

    </filter> 

--> 

и добавил:

org.jasig.cas.client.session.SingleSignOutHttpSessionListener

<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> 
    <filter> 
     <filter-name>CAS Filter</filter-name> 
     <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> 
     <init-param> 
      <param-name>casServerLoginUrl</param-name> 
      <param-value>https://localhost:8444/cas/login</param-value> 
     </init-param> 
     <init-param> 
      <param-name>serverName</param-name> 
      <param-value>http://localhost:8080</param-value> 
     </init-param> 
    </filter> 
    <filter-mapping> 
     <filter-name>CAS Filter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <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://localhost:8444/cas</param-value> 
     </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> 

    <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> 

Следующим шагом создается пара ключей (SSL): В терминале, я напечатал:

1) Создание хранилища ключей Keytool -genkey -alias SSO -keyalg RSA -keysize 1024 -keypass cangeit -valididty 3650 -keystore /path/to/keystore/sso.keystore -storepass changeit

(В этот момент, я напечатал: FirstName и LastName: локальный (это мое имя хоста)) 2) Создание сертификата Keytool -export -alias ssl -keystore/path/to/Хранилище ключей/sso.keystore -file /path/to/keystore/sso.crt -storepass changeit

3) Добавить сертификат trustore Keytool -import -keystore% JAVA_HOME%/JRE/Библиотека/безопасность/cacerts -file/путь/к/хранилище ключей/sso.crt -alias SSO

После того как я добавил в $ tomcat_server $/конф/server.xml:

<Connector port="8444" URIEncoding="UTF-8" protocol="HTTP/1.1" SSLEnabled="true" 
       maxThreads="150" scheme="https" secure="true" 
       clientAuth="false" sslProtocol="TLS" keystoreFile="/path/to/keystore/sso.keystore" 
       keystorePass="changeit" keyAlias="sso"/> 

Затем я начал tomcat_server, alfresco_tomcat.

Перехожу по ссылке: локальный: 8080/доля (HTTP) силу ($ alfresco_tomcat/WebApps/доля/WEB-INF/web.xml) Доля перенаправить меня на локальный: 8444/КАН (HTTPS), где Я вижу страницу входа. Я набрал: Имя пользователя: casuser, Password: Mellon < - Это стандартный логин/пароль.

После этого я вернулся перенаправляет http://localhost:8080/share/ ..., где ключ проверки, но в точке у меня есть ошибка (в браузер 500 ошибок) В $ alfresco_tomcat/журналы/localhost.log:

SEVERE: Servlet.service() для сервлета [jsp] в контексте с пуском [/ share] threw exception java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Не удалось создать путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: не удалось найти действительный путь сертификации для запрошенной цели

После поиска в Интернете я получил информацию on, этот Share не может подтвердить мой сертификат (который я добавил).

Пожалуйста, помогите мне с проблемой ...

+1

Вы пытались добавить свой сертификат CAS в магазин доверия alfresco tomcat? –

+0

Да, я добавил свой sso.crt к карманам (от Alfresco/java /.../ cacerts), но он не работал ... – dmmax

ответ

0

Oh..It очень просто и глупо для меня

Моя проблема заключается в том, что cas_tomcat связывают с JVM_1 и alfresco_tomcat связывают с JVM_2 ...

Теперь, я связываю cas_tomcat, alfresco_tomcat с общей виртуальной машины Java. Проверка ключа подтверждена успешно

Смежные вопросы