11
votes

Sécurité de printemps et intégration CAS

Quelqu'un peut-il coller des étapes simples pour intégrer la sécurité de printemps et la CAS ici pour une panneau unique et une déconnexion unique. Remarque Je ne veux pas d'un accès basé sur un rôle. J'ai une application Web qui est déjà intégrée à la sécurité de printemps. Maintenant, j'essayais d'exécuter SSO avec CAS, mais je reçois cette erreur sun.security.provider.certpath.suncertpathbuildeception: impossible de trouver le chemin de certification valide sur la cible demandée code>

Ceci est mon printemps actuel Security.xml p> xxx pré>

ceci est mon web.xml p>

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


0 commentaires

3 Réponses :


5
votes

Les étapes les plus simples pour obtenir l'authentification CAS fonctionnent de construire et d'exécuter le échantillon de CAS à partir de l'arborescence source de sécurité à ressort.

Vous devez vraiment comprendre comment fonctionne la CAS avant d'essayer de l'utiliser ou de l'intégrer à votre application. Je commencerais sur la documentation CAS et le manuel de référence de Spring Security qui décrit le Interactions entre la sécurité des CAS et du ressort .

j_spring_cas_security_check est l'URL que le CAS redirige dans votre application après avoir authentifié l'utilisateur (voir le lien ci-dessus).

Même si votre application n'est pas authentifiant les utilisateurs, il a toujours un concept d'utilisateurs qu'il connaît. Il doit également charger les rôles de ces utilisateurs, que CAS ne gère pas, d'où la déclaration Service utilisateur . Le mot de passe ne sera pas utilisé.

Comment votre application valide qu'une connexion est réussie est expliquée dans la documentation ci-dessus. Il appelle essentiellement le serveur CAS, en passant dans le billet de service et récupère une réponse avec le nom d'utilisateur.


2 commentaires

J'ai édité la question? À nouveau obtenir un problème, incapable de résoudre ..Veuillez aider


Maintenant, obtenez cette erreur. Comment résoudre? Causé par: Javax.net.ssl.sslhandshakeException: sun.security.validator.validatorexception: PKIX PATH Building a échoué: Sun.Security.Provider.CertPath.SunCercERTPathBuildERException: Impossible de trouver Valid valide Chemin de certification à la cible demandée à com.sun.net.ssl.internal.ssl.alerts.getsSlexception (source inconnue)



1
votes

De toute façon SIMPLE SIGNE ON est fait..Il a pris beaucoup de temps pour comprendre, mais croyez-moi si vous avez une configuration d'esprit que vous voulez le faire, alors de toute façon, vous réussirez ..Ee est la solution .. Voici ma mise à jour Spring-Security.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>


1 commentaires

Pouvez-vous poster votre code userserviceImpl? Ce sera beaucoup d'aide pour moi.



4
votes

résoudre le problème

sun.security.provider.certpath.suncertpathbuildeception: Impossible de trouver un chemin de certification valide à la cible demandée

Nous suivons 3 étapes pour instruire JDK de notre serveur d'applications Acceptez le certificat de Server CAS (dans votre projet, c'est cegicollabdev.india.tcs.com:8443)

  1. Téléchargez installcert.java et copiez sur le dossier JDK'BIN

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

  2. Outil de ligne de commande ouverte avec privilège administrateur (si vous êtes sur la fenêtre 7 / Vista). Changez au dossier BIN de JDK et construisez ce fichier Java

    javac installcert.java

  3. Installer le certificat de serveur CAS

    java installcert cegicollabdev.india.tcs.com:8443

    Hit 1 lorsque vous y êtes invité.

    C'est tout.


0 commentaires