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:
et d'apres la compilation du projet l'url http se convertit en https mais il m'affiche la page suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 <!-- ===================== 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>
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: SavedRequest[http://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:
et je pense que c'est ca qui me cause le probleme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <!-- ===================== 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>
voila le fichier security.xml:
Dans l'attente de vos reponse et merci bcp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166 <?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>
Partager