You are not logged in.
Après installation de shibboleth sur /, shibboleth n'est pas utilisé lorsqu'une page est dans le cache.
Ce problème vient d'une règle de redirection qui vérifie si la page est dans le cache. Dans ce cas apache sert la page directement sans appeler shibboleth, car l'information [Location /] n'est pas encore passée dans Apache.
Cette règle est
RewriteCond %{DOCUMENT_ROOT}/www/$1 -f
RewriteRule ^/(.+)$ %{DOCUMENT_ROOT}/www/$1 [L]
Il suffit de rajouter une condition sur cette règle pour s'assurer que shibboleth est déjà passé:
RewriteCond %{LA-U:ENV:Shib-Authentication-Instant} ^20.*
Ce qui nous donne:
RewriteCond %{DOCUMENT_ROOT}/www/$1 -f
RewriteCond %{LA-U:ENV:Shib-Authentication-Instant} ^20.*
RewriteRule ^/(.+)$ %{DOCUMENT_ROOT}/www/$1 [L]
Dans ce cas, quelque soit la page, "Location /" prend la main puis fournit la page (à partir du cache si elle existe dans le cache).
J'ai vérifié que le cache est toujours utilisé en arrêtant le tomcat du site.
Source de l'idée:
Offline
J'avais trouvé d'autres pistes (non explorée):
Sur un autre site il y avait:
RewriteCond %{IS_SUBREQ} ^false$
RewriteCond %{LA-U:REMOTE_USER} =""
Offline