Vous regardez une version antérieure (v. /wiki/pages/viewpage.action?pageId=13139971) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 4) afficher la version suivante »

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.

Mode Servlet

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 espace). 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.

  • Aucune étiquette