| Remarque |
|---|
Doc datant de la V1 ! |
Le canal lecture permet d'accéder (à partir de la version 1.1) à des sources et des catégories nécessitant une identification CAS.
Ce document à pour but de donner des exemple de configuration et une FAQ sur ce sujet qui est souvent délicat à mettre en oeuvre.
...
| Page Tree |
|---|
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).
| Bloc de code |
|---|
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 :
| Bloc de code |
|---|
# 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) :
| Bloc de code |
|---|
<?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>
|
| Remarque |
|---|
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) :
| Bloc de code |
|---|
<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>
|
...
|