Suite à un upgrade HRaSpace en
7.40.010
Lorsqu’on se
connectait directement depuis le serveur Tomcat tout se passait
correctement :
2017-09-27 07:32:15,851
[
1.2.3.4][
] INFO portl - PORTL???? Detected browser : Internet Explorer 11
2017-09-27 07:32:21,544
[
1.2.3.4][
] INFO ophrc - OPHRC1102 User <S12345678.FRA>
connected [Virtual
session=e1OPVBEdZpN5FAlSrNcJvA3IHs6w4rIEUr5DYgFmU3usjiWLChvvUGPd9jd2f7gA]
...
è
Mais après une authentification
LDAP correcte via le Apache en frontal de
l’application... Erreur HTTP 500.
Ceci est lié à une nouvelle fonctionnalité de sécurité : il est nécessaire maintenant de spécifier dans la topologie système les sources approuvées dans le filtre CSRFOriginFilter au niveau de chaque fonction de type "Web" (ex: hra-space, hr-rich-client, hr-portlets, hr-dms, ...).
Dans les logs :
Ceci est lié à une nouvelle fonctionnalité de sécurité : il est nécessaire maintenant de spécifier dans la topologie système les sources approuvées dans le filtre CSRFOriginFilter au niveau de chaque fonction de type "Web" (ex: hra-space, hr-rich-client, hr-portlets, hr-dms, ...).
Dans les logs :
2017-09-27
07:08:37,255 [ 1.2.3.4][
] INFO portl - PORTL???? Detected browser : Internet Explorer 11
2017-09-27
07:08:46,931 [ 1.2.3.4][
] WARN CSRFOriginFilter - [SECURITY][CSRFOriginFilter] Suspicious CSRF attack from IP:1.2.3.4 on URI:
/hra-space/portal
2017-09-27
07:08:46,931 [ 1.2.3.4][
] WARN CSRFOriginFilter - [SECURITY][CSRFOriginFilter] Strict mode
enabled, returning satus code 403 (Forbidden) on URI: /hra-space/portal
2017-09-27
07:08:47,418 [ 1.2.3.4][
] INFO ophrc - OPHRC1102 User <S12345678.FRA> connected [Virtual
session=RIvBhRkso19mU00l1UJRaTlWI835XKT8m3q2AzqsdlcLhwmEE8LGxY6zycbbIQP6]
2017-09-27 07:08:47,421
[ 1.2.3.4][
] ERROR portl - PORTL9999 Exception
java.lang.IllegalStateException:
Impossible de créer une session après que la réponse ait été envoyée
at org.apache.catalina.connector.Request.doGetSession(Request.java:3058)
at org.apache.catalina.connector.Request.getSession(Request.java:2430)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:897)
at
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:909)
...
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:722)
2017-09-27
07:08:47,423 [ 1.2.3.4][
] INFO portl - PORTL???? Detected browser : Internet Explorer 11
2017-09-27 07:08:47,423
[
1.2.3.4][
] ERROR initializationFilter - PORTL9999 Exception
java.lang.IllegalStateException:
Impossible d''utiliser faire-suivre (forward) après que la réponse ait été
envoyée
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:347)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:337)
at
com.hraccess.portal.filter.HRPortalConnectionFilter.redirectLogin(HRPortalConnectionFilter.java:750)
at
com.hraccess.portal.filter.HRPortalConnectionFilter.doFilter(HRPortalConnectionFilter.java:494)
...
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:722)
Dans la topologie système
Paramètre technique "security.csrf.origin.source"
Paramètre technique "security.csrf.origin.source"
Exemple : security.csrf.origin.source=www.mycompany.fr
Il est possible de spécifier jusqu'à 10 sources grâce aux paramètres techniques "security.csrf.origin.source.<n°>" (ex : security.csrf.origin.source.0=my.secure.host.com ... security.csrf.origin.source.9=another.secure.host.fr)
Dans notre cas l'erreur venait de ce que l'Apache était présent sur une machine distincte de celle du Tomcat.
Dans les logs de hr-rich-client, on trouvera aussi des warnings indiquant l'IP des postes à l'origine des publications :
Le paramètre technique "security.csrf.token.filter" est par défaut à "strict".
Il peut si besoin être forcé à "disable".
Il est possible de spécifier jusqu'à 10 sources grâce aux paramètres techniques "security.csrf.origin.source.<n°>" (ex : security.csrf.origin.source.0=my.secure.host.com ... security.csrf.origin.source.9=another.secure.host.fr)
Dans notre cas l'erreur venait de ce que l'Apache était présent sur une machine distincte de celle du Tomcat.
Dans les logs de hr-rich-client, on trouvera aussi des warnings indiquant l'IP des postes à l'origine des publications :
2017-09-28 16:58:40,091 [ 1.2.3.5][ ] WARN CSRFOriginFilter - [SECURITY][CSRFOriginFilter] Suspicious CSRF attack from IP:1.2.3.5 on URI: /hr-rich-client/hrservlet/HRAdmin
2017-09-28 16:58:40,092 [ 1.2.3.5][ ] WARN CSRFOriginFilter - [SECURITY][CSRFOriginFilter] Strict mode enabled, returning satus code 403 (Forbidden) on URI: /hr-rich-client/hrservlet/HRAdmin
2017-09-28 16:58:40,092 [ 1.2.3.5][ ] INFO ServletAdmin - HRWEB1029 Publishing LFAs (user U1234567)
2017-09-28 16:58:40,124 [ 1.2.3.5][ ] INFO hrweb - HRWEB1040 publishing tree is TA0FR
2017-09-28 16:58:40,092 [ 1.2.3.5][ ] WARN CSRFOriginFilter - [SECURITY][CSRFOriginFilter] Strict mode enabled, returning satus code 403 (Forbidden) on URI: /hr-rich-client/hrservlet/HRAdmin
2017-09-28 16:58:40,092 [ 1.2.3.5][ ] INFO ServletAdmin - HRWEB1029 Publishing LFAs (user U1234567)
2017-09-28 16:58:40,124 [ 1.2.3.5][ ] INFO hrweb - HRWEB1040 publishing tree is TA0FR
Le paramètre technique "security.csrf.token.filter" est par défaut à "strict".
Il peut si besoin être forcé à "disable".
Aucun commentaire:
Enregistrer un commentaire