Probleme de convertission http à https

youssefcrypt Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
 youssefcrypt -
salut j'ai une application spring d'authentification avec le framework Acegi et ca marche tres bien et maintenant je suis sur une 2eme etape
pour convertir l'url http à https et j'ai ajoute le code suivante:


<!-- ===================== SSL SWITCHING ==================== -->
    <bean id="channelProcessingFilter" class="org.springframework.security.securechannel.ChannelProcessingFilter">
        <property name="channelDecisionManager" ref="channelDecisionManager"/>
        <property name="filterInvocationDefinitionSource">
            <value>
                PATTERN_TYPE_APACHE_ANT
                 **=REQUIRES_SECURE_CHANNEL
            </value>
        </property>
    </bean>
 
    <bean id="channelDecisionManager" class="org.springframework.security.securechannel.ChannelDecisionManagerImpl">
        <property name="channelProcessors">
            <list>
                <bean class="org.springframework.security.securechannel.SecureChannelProcessor">
                    <property name="entryPoint" ref="channelEntryPoint"/>
                </bean>
                <bean class="org.springframework.security.securechannel.InsecureChannelProcessor">
                    <property name="entryPoint" ref="channelEntryPoint"/>
                </bean>
            </list>
        </property>
    </bean>
 
    <bean id="channelEntryPoint" class="org.springframework.security.securechannel.RetryWithHttpsEntryPoint">
        <property name="portMapper" ref="portMapper"/>
    </bean>
 
    <bean id="portMapper" class="org.springframework.security.util.PortMapperImpl">
        <property name="portMappings">
            <map>
                <entry key="80" value="443"/>
                <entry key="8080" value="8443"/>
                <entry key="5580" value="5543"/>
            </map>
        </property>
    </bean>
 	


et d'apres la compilation du projet l'url http se convertit en https mais il m'affiche la page suivante:

Action annulée
Internet Explorer ne peut pas ouvrir la page Web requise. La page n'est peut-être pas disponible temporairement.

--------------------------------------------------------------------------------

Essayez de la manière suivante :

Cliquez sur le bouton Actualiser ou réessayez ultérieurement.

Si vous avez déjà visité cette page et souhaitez voir ce qui a été stocké sur votre ordinateur, cliquez sur Fichier, puis sur Travailler hors connexion.

Pour obtenir des informations sur la navigation hors connexion avec Internet Explorer, cliquez sur le menu ?, puis sur Sommaire et index.




Internet Explorer

et d'apres l'actualisation de la page on trouve :

Impossible d'afficher la page
La page que vous recherchez est actuellement indisponible. Le site Web rencontre peut-être des difficultés techniques, ou vous devez modifier les paramètres de votre navigateur.

--------------------------------------------------------------------------------

Essayez de la manière suivante :

Cliquez sur le bouton Actualiser ou recommencez ultérieurement.

Si vous avez entré l'adresse de cette page dans la barre d'adresses, vérifiez qu'elle est correcte.

Pour vérifier vos paramètres de connexion, cliquez sur le menu Outils, puis sur Options Internet.. Dans l'onglet Connexions, cliquez sur Paramètres. Les paramètres doivent correspondre à ceux fournis par votre administrateur réseau ou par votre fournisseur d'accès à Internet.
Vérifiez que vos paramètres de connexion Internet sont détectés. Vous pouvez configurer Microsoft Windows de façon à ce qu'il examine votre réseau et détecte automatiquement les paramètres de connexion (si votre administrateur réseau a activé ce paramètre).
Cliquez sur le menu Outils, puis cliquez sur Options Internet.
Dans l'onglet Connexions, cliquez sur Paramètres réseau.
Sélectionnez Détecter automatiquement les paramètres de connexion, puis cliquez sur OK.
Certains sites exigent une sécurité de connexion 128 bits. Cliquez sur le menu ? (Aide) puis sur À propos de Internet Explorer pour déterminer le niveau de cryptage installé.
Si vous tentez de joindre un site sécurisé, vérifiez que vos paramètres de sécurité le prennent en charge. Cliquez sur le menu Outils, puis cliquez sur Options Internet. Dans l'onglet Avancé, faites défiler les options jusqu'à la section de sécurité, et vérifiez les paramètres d'utilisation de SSL 2.0, SSL 3.0, TLS 1.0 et PCT 1.0.
Cliquez sur le bouton Précédente pour essayer un autre lien.



Impossible de trouver le serveur ou erreur DNS
Internet Explorer

ce probleme est classique d'internet Explorer d'impossibilite à se connecte à des sites securisés mais c'est pas ca mon probleme
parce que je peux acceder à gmail,....etc

j'ai verifie le console et j'ai remarque qu'il ya une exception avant d'ajouter le code de convertition à l'https mais ca marche comme meme:

08-05-2010 10:06:12:359 4719 DEBUG org.acegisecurity.intercept.web.PathBasedFilterInvocationDefinitionMap - Candidate is: '/'; pattern is /**; matched=true
08-05-2010 10:06:12:359 4719 DEBUG org.acegisecurity.intercept.AbstractSecurityInterceptor - Secure object: FilterInvocation: URL: /; ConfigAttributes: [ROLE_AUTH]
08-05-2010 10:06:12:375 4735 DEBUG org.acegisecurity.ui.ExceptionTranslationFilter - Authentication exception occurred; redirecting to authentication entry point
org.acegisecurity.AuthenticationCredentialsNotFoundException: An Authentication object was not found in the SecurityContext
at org.acegisecurity.intercept.AbstractSecurityInterceptor.credentialsNotFound(AbstractSecurityInterceptor.java:339)
at org.acegisecurity.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:261)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:104)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:286)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
08-05-2010 10:06:12:390 4750 DEBUG org.acegisecurity.ui.ExceptionTranslationFilter - Authentication entry point being called; SavedRequest added to Session: SavedRequesthttp://localhost:8080/AuthentificationAcegi/
08-05-2010 10:06:12:421 4781 DEBUG org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint - Redirecting to: http://localhost:8080/AuthentificationAcegi/login

et c'est evident parce que toutes les urls sont securisés par la partie du code suivante:

<!-- ===================== filterSecurityInterceptor ==================== -->
	<bean id="filterSecurityInterceptor"
		  class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
		<property name="authenticationManager">
			<ref bean="authenticationManager" />
		</property>
		<property name="accessDecisionManager">
			<ref bean="accessDecisionManager" />
		</property>
		<property name="objectDefinitionSource">
			<value>
				CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
				PATTERN_TYPE_APACHE_ANT
				/**=ROLE_AUTH
			</value>
		</property>
	</bean>


et je pense que c'est ca qui me cause le probleme
voila le fichier security.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>


	<!-- ======================== FILTER CHAIN ======================= -->
	<bean id="filterChainProxy"
		class="org.acegisecurity.util.FilterChainProxy">
		<property name="filterInvocationDefinitionSource">
			<value>
				CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
				PATTERN_TYPE_APACHE_ANT
				/login=httpSessionContextIntegrationFilter,channelProcessingFilter
				/login.form=httpSessionContextIntegrationFilter,channelProcessingFilter
				/assets/**=httpSessionContextIntegrationFilter,channelProcessingFilter
				/j_acegi_security_check=channelProcessingFilter,httpSessionContextIntegrationFilter,formAuthenticationProcessingFilter
				/**=channelProcessingFilter,httpSessionContextIntegrationFilter,exceptionTranslationFilter,filterSecurityInterceptor
			</value>
		</property>
	</bean>

<!-- ===================== SSL SWITCHING ==================== -->
    <bean id="channelProcessingFilter" class="org.springframework.security.securechannel.ChannelProcessingFilter">
        <property name="channelDecisionManager" ref="channelDecisionManager"/>
        <property name="filterInvocationDefinitionSource">
            <value>
                PATTERN_TYPE_APACHE_ANT
                 /**=REQUIRES_SECURE_CHANNEL
            </value>
        </property>
    </bean>
 
    <bean id="channelDecisionManager" class="org.springframework.security.securechannel.ChannelDecisionManagerImpl">
        <property name="channelProcessors">
            <list>
                <bean class="org.springframework.security.securechannel.SecureChannelProcessor">
                    <property name="entryPoint" ref="channelEntryPoint"/>
                </bean>
                <bean class="org.springframework.security.securechannel.InsecureChannelProcessor">
                    <property name="entryPoint" ref="channelEntryPoint"/>
                </bean>
            </list>
        </property>
    </bean>
 
    <bean id="channelEntryPoint" class="org.springframework.security.securechannel.RetryWithHttpsEntryPoint">
        <property name="portMapper" ref="portMapper"/>
    </bean>
 
    <bean id="portMapper" class="org.springframework.security.util.PortMapperImpl">
        <property name="portMappings">
            <map>
                <entry key="80" value="443"/>
                <entry key="8080" value="8443"/>
                <entry key="5580" value="5543"/>
            </map>
        </property>
    </bean>
 	
	 
	<!-- ===================== httpSessionContextIntegrationFilter ==================== -->
	<bean id="httpSessionContextIntegrationFilter"
		  class="org.acegisecurity.context.HttpSessionContextIntegrationFilter">
	</bean>
	
	<!-- ===================== exceptionTranslationFilter ==================== -->
	<bean id="exceptionTranslationFilter"
		  class="org.acegisecurity.ui.ExceptionTranslationFilter">
		<property name="authenticationEntryPoint">
			<ref bean="formLoginAuthenticationEntryPoint" />
		</property>
	</bean>
	
	<!-- ===================== filterSecurityInterceptor ==================== -->
	<bean id="filterSecurityInterceptor"
		  class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
		<property name="authenticationManager">
			<ref bean="authenticationManager" />
		</property>
		<property name="accessDecisionManager">
			<ref bean="accessDecisionManager" />
		</property>
		<property name="objectDefinitionSource">
			<value>
				CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
				PATTERN_TYPE_APACHE_ANT
				/**=ROLE_AUTH
			</value>
		</property>
	</bean>
	
	<!-- ===================== formLoginAuthenticationEntryPoint ==================== -->
	<bean id="formLoginAuthenticationEntryPoint"
		  class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
		<property name="loginFormUrl">
			<value>/login</value>
		</property>
		<property name="forceHttps">
			<value>false</value>
		</property>
	</bean>
	
	<!-- ===================== formAuthenticationProcessingFilter ==================== -->
	<bean id="formAuthenticationProcessingFilter"
		class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
		<property name="authenticationManager">
			<ref bean="authenticationManager" />
		</property>
		<property name="authenticationFailureUrl">
			<value>/login?error=true</value>
		</property>
		<property name="defaultTargetUrl">
			<value>/home</value>
		</property>
		<property name="filterProcessesUrl">
			<value>/j_acegi_security_check</value>
		</property>
	</bean>
	
	<!-- ===================== authenticationManager ==================== -->
	<bean id="authenticationManager"
		class="org.acegisecurity.providers.ProviderManager">
		<property name="providers">
			<list>
				<ref local="authenticationProvider"/>
			</list>
		</property>
	</bean>
	
	<!-- ===================== authenticationProvider ==================== -->
	<bean id="authenticationProvider"
		class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
		<property name="userDetailsService"><ref bean="userDetailsService"/>
		</property>
		<property name="passwordEncoder" ref="shaEncoder"/>
	</bean>
	
	<!-- ===================== ShaEncoding ==================== -->
	<bean id="shaEncoder" class="org.acegisecurity.providers.encoding.ShaPasswordEncoder"/>
	
	<!-- ===================== userDetailsService ==================== -->
	<bean id="userDetailsService"
		class="tuto.webssh.security.UserDetailsServiceImpl">
		<property name="userManager"><ref bean="userManager"/>
		</property>
	</bean>

	<!-- ===================== accessDecisionManager ==================== -->
	<bean id="accessDecisionManager"
		  class="org.acegisecurity.vote.UnanimousBased">
		<property name="decisionVoters">
			<list>
				<ref bean="roleVoter" />
			</list>
		</property>
	</bean>

	<bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter">
		<property name="rolePrefix">
			<value>ROLE_</value>
		</property>
	</bean>
	
</beans>


Dans l'atente de votre reponses et merci bcp

5 réponses

Kopros Messages postés 595 Date d'inscription   Statut Membre Dernière intervention   89
 
Ce serait bcp plus simple d'utiliser le TLS à partir du serveur et de déclarer ton site dans le serveur.
Tous les hébergeurs ne proposent pas le TLS, trouves-en un qui le fait.
0
youssefcrypt
 
svp tu peux m'explique un peu plus parce que j'ai pas bien compris
0
youssefcrypt
 
slt kopros svp tu peux m'explique un peu plus parce que j'ai pas bien compris
et merci bcp
0
Kopros Messages postés 595 Date d'inscription   Statut Membre Dernière intervention   89
 
Le TLS (anciennement SSL) c'est un protocole qu'on ajoute au serveur.
En gros on lui dit "tel site est sécurisé" et là le site en question utilise https et le client doit obtenir le certificat pour accéder au site. C'est un système de clé privée + clé publique.
https://fr.wikipedia.org/wiki/Transport_Layer_Security

Si tu raques plusieurs centaines d'€ par an pour avoir un certificat officiel, l'utilisateur s'apercevra même pas qu'il est en https (s'il fait pas gaffe). Sinon, tu peux créer ton propre certificat mais là l'utilisateur devra l'accepter avant d'aller sur le site.

Voilà. La procédure pour mettre ça en place sur le serveur est un peu chiante à expliquer, surtout que ça peut être différent selon les cas.
Si le serveur est sous Windows je sais pas comment on fait, si c'est du Linux t'as tout sur le site de la distrib. Exemple pour Ubuntu :
http://doc.ubuntu-fr.org/tutoriel/securiser_apache2_avec_ssl


Bon courage !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
youssefcrypt
 
merci kopros certainement je travail sous windows et je sais pas comment pratiquer et installer les trucs certificats,... etc, mais en attendant l'aides des autres et merci bcp encore une fois
0