LOG
Voici les log d'accès typiques de l'accès à un tomcat hébergeant esup-lecture (dans un context "/esup-lecture") où l'on fait appel à une ressource protégée par CAS. Cette ressource se trouvant dans le context "/sources" (sur le même tomcat ici).
129.20.129.80 - - [02/Jul/2008:09:43:23 +0200] "GET /esup-lecture/ HTTP/1.1" 302 - 129.20.131.194 - - [02/Jul/2008:09:43:25 +0200] "GET /esup-lecture/CasProxyServlet HTTP/1.1" 302 - 129.20.131.194 - - [02/Jul/2008:09:43:25 +0200] "GET /esup-lecture/CasProxyServlet?pgtIou=PGTIOU-194845-75VoDBzcJYeeJfdkFMfZdjXX0xmSlaIiAf0&pgtId=TGT-354931-X90mVk0zaDH2gkgXMrAsSKnKFUfYPUJaMatO4x4txzmJKIYplY HTTP/1.1" 200 78 129.20.129.80 - - [02/Jul/2008:09:43:25 +0200] "GET /esup-lecture/?ticket=ST-753416-sFbr0UFS5WjWW5ykcUkw HTTP/1.1" 302 - 127.0.0.1 - - [02/Jul/2008:09:43:29 +0200] "POST /devray/services/UportalService HTTP/1.0" 500 574 127.0.0.1 - - [02/Jul/2008:09:43:29 +0200] "POST /devray/services/UportalService HTTP/1.0" 200 3227 129.20.129.80 - - [02/Jul/2008:09:43:31 +0200] "GET /esup-lecture/stylesheets/home.faces HTTP/1.1" 200 8401 129.20.129.80 - - [02/Jul/2008:09:43:31 +0200] "GET /esup-lecture/media/lecture.css HTTP/1.1" 304 - 129.20.129.80 - - [02/Jul/2008:09:43:31 +0200] "GET /esup-lecture/media/XMLWithoutMenu.gif HTTP/1.1" 304 - 129.20.129.80 - - [02/Jul/2008:09:43:31 +0200] "GET /esup-lecture/media/moins.gif HTTP/1.1" 304 - 129.20.129.80 - - [02/Jul/2008:09:43:31 +0200] "GET /esup-lecture/media/edit.png HTTP/1.1" 304 - 129.20.129.80 - - [02/Jul/2008:09:43:31 +0200] "GET /esup-lecture/media/extand.gif HTTP/1.1" 304 - 129.20.129.80 - - [02/Jul/2008:09:43:31 +0200] "GET /esup-lecture/media/puce.gif HTTP/1.1" 304 - 129.20.129.80 - - [02/Jul/2008:09:43:31 +0200] "GET /esup-lecture/media/retract.gif HTTP/1.1" 304 - 127.0.0.1 - - [02/Jul/2008:09:43:36 +0200] "GET /sources/rss.xml?ticket=ST-753431-buXvhZ3xqNaC2wuWsvdu HTTP/1.1" 200 1116 129.20.129.80 - - [02/Jul/2008:09:43:36 +0200] "POST /esup-lecture/stylesheets/home.faces HTTP/1.1" 200 10335 129.20.129.80 - - [02/Jul/2008:09:43:36 +0200] "GET /esup-lecture/media/unread.png HTTP/1.1" 200 946
Voici ce que l'on note :
- Récupération de PGT (qui servira pour obtenir un Proxy Ticket pour l'accès à la source protégée par CAS) :
"GET /esup-lecture/CasProxyServlet?pgtIou=PGTIOU-194845-75VoDBzcJYeeJfdkFMfZdjXX0xmSlaIiAf0&pgtId=TGT-354931-X90mVk0zaDH2gkgXMrAsSKnKFUfYPUJaMatO4x4txzmJKIYplY HTTP/1.1" - Validation du Service Ticket permettant d'identifier l'utilisateur pour esup-lecture :
"GET /esup-lecture/?ticket=ST-753416-sFbr0UFS5WjWW5ykcUkw HTTP/1.1" - Appel de la source, protégée par CAS, par esup-lecture avec, en paramètre le Proxy Ticket CAS obtenu par esp-lecture :
"GET /sources/rss.xml?ticket=ST-753431-buXvhZ3xqNaC2wuWsvdu HTTP/1.1"
Configuration
build.properties esup-lecture
En terme de configuration coté esup-lecture on trouveras dans le fichier build.properties :
# NOTE : tomcat.host, tomcat.port, cas.url are used in servlet mode for CAS configuration # # Tomcat host, defaults to localhost. # tomcat.host=uportal.univ-rennes1.fr # # Tomcat port, defaults to 8080. # tomcat.port=80 # # CasProxyServletURL, defaults to https://localhost:8080/esup-lecture/CasProxyServlet # Please don't change /CasProxyServlet at the URL end # cas.proxy.servlet.url=https://uportal.univ-rennes1.fr/esup-lecture/CasProxyServlet # # The main URL of the CAs server # cas.url=https://sso-cas.univ-rennes1.fr
Explications :
- tomcat.host est positionné à uportal.univ-rennes1.fr qui est le nom utilisé par le virtualhost apache en frontal du tomcat. Un frontal apache est utilisé pour notamment gérer le https
- cas.proxy.servlet.url est positionné à https://uportal.univ-rennes1.fr/esup-lecture/CasProxyServlet
Il est de la forme : https + <virtual_host> + <context esup-lecture> + CasProxyServlet
Cette propriété définit l'URL qui sera utilisé par le serveur CAS pour transmettre un PGT à esup-lecture
web.xml esup-lecture
Une fois esup-lecture déployé le web.xml de l'application devrait ressembler à ceci (opération automatique via ant deploy) :
<?xml version="1.0"?> .../... <context-param> <param-name>edu.yale.its.tp.cas.proxyUrl</param-name> <param-value>https://sso-cas.univ-rennes1.fr/proxy</param-value> </context-param> <filter> <display-name>CASFilter</display-name> <filter-name>CAS Filter</filter-name> <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name> <param-value>https://sso-cas.univ-rennes1.fr/login</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name> <param-value>https://sso-cas.univ-rennes1.fr/serviceValidate</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name> <param-value>uportal.univ-rennes1.fr</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.wrapRequest</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.proxyCallbackUrl</param-name> <param-value>https://uportal.univ-rennes1.fr/esup-lecture/CasProxyServlet</param-value> </init-param> </filter> <filter-mapping> <filter-name>CAS Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>ProxyTicketReceptor</servlet-name> <servlet-class>edu.yale.its.tp.cas.proxy.ProxyTicketReceptor</servlet-class> </servlet> <servlet-mapping> <servlet-name>ProxyTicketReceptor</servlet-name> <url-pattern>/CasProxyServlet</url-pattern> </servlet-mapping> .../... </web-app>
edu.yale.its.tp.cas.proxyUrl est l'url du serveur CAS, utilisée par esup-lecture, pour obtenir un Proxy Ticket à partir du PGT obtenu par la servlet ProxyTicketReceptor
Web.xml du service produisant la source
A titre d'information voici le web.xml du context "/sources" contenant la source protégée par CAS (et accéder par esup-lecture grace à un Proxy Ticket CAS) :
<filter> <description>The CAS filter, used to authenticate users.</description> <display-name>CASFilter</display-name> <filter-name>CAS Filter</filter-name> <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name> <param-value>https://sso-cas.univ-rennes1.fr/login</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name> <param-value>https://sso-cas.univ-rennes1.fr/proxyValidate</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name> <param-value>localhost:8080</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.authorizedProxy</param-name> <param-value>https://uportal.univ-rennes1.fr/esup-lecture/CasProxyServlet</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.wrapRequest</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CAS Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
edu.yale.its.tp.cas.client.filter.authorizedProxy contient une liste de proxy autorisés (séparés par des espaces). On retrouve ici la même valeur que celle utilisée pour le paramètre edu.yale.its.tp.cas.client.filter.proxyCallbackUrl dans le web.xml de esup-lecture.