Pages enfant
  • Environnements invités multiples (v3)

Le principe est d'avoir des environnements utilisateurs personnalisés en mode invité, en se basant sur un argument de la requête http d'accès à l'ENT.
Dans cet exemple, l'argument est "uP_guest" et contient le nom du compte profil invité.

Modification de PersonManager

Les classes qui suivent modifient l'implémentation de PersonManager dans uPortal ainsi : Création d'un utilisateur "guest" qui a pour nom la valeur de uP_guest s'il existe, sinon org.jasig.portal.security.PersonFactory.guest_user_name dans portal.properties

Elles proviennent de l'université de Yale, YalePersonManager est patchée pour ne pas utiliser un contrôle d'accès sur l'adresse du client par lecture dans une BDD.

  • Copier les classes suivantes dans le répertoire custom/uPortal/source/edu/yale/its/portal/security/provider :
  • Indiquer dans custom/uPortal/uportal-impl/src/main/resources/properties/contexts/userContext.xml la classe à activer pour le bean PersonManager :
    <bean id="personManager" class="edu.yale.its.portal.security.provider.YalePersonManager" />
    

Modification de la servlet guest

La servlet d'accès anonyme doit être modifiée pour accepter le paramètre uP_guest :

  • Vers ligne 99, remplacer :
	    String targetArgs = request.getParameter("uP_args");

	    // create the redirect URL, adding fname and args parameters if necessary
		String redirectTarget = null;
		if (targetFname == null){
			redirectTarget = request.getContextPath() + "/" + redirectString;
		} else {

Par :

	    String targetArgs = request.getParameter("uP_args");

	 // Multi Guests : add uP_guest parameter
	    String targetGuest = request.getParameter("uP_guest");


	    // create the redirect URL, adding fname and args parameters if necessary
		String redirectTarget = null;
		if (targetFname == null) {
			if (targetGuest == null) {
				redirectTarget = request.getContextPath() + "/" + redirectString;
			} else {
				redirectTarget = request.getContextPath() + "/tag.idempotent." + redirectString;
				redirectTarget = redirectTarget + "?uP_guest=" + URLEncoder.encode(targetGuest, "UTF-8");
			}
		} else {

Création des profils utilisateurs "invités"

  • Modifier le fichier des profils (dlm.xml) pour distinguer le profil de l'utilisateur "guest" des autres :
      <dlm:fragment name='Anonymes' ownerID='guest-lo' precedence='100'>
        <dlm:audience evaluatorFactory='org.jasig.portal.layout.dlm.providers.PersonEvaluatorFactory'>
          <paren mode="AND">
            <attribute name="username" mode='equals' value='guest'/>
          </paren>
        </dlm:audience>
      </dlm:fragment>
  • Référencer chaque profil :
      <dlm:fragment name='AnonymesXXX' ownerID='guestXXX-lo' precedence='100'>
        <dlm:audience evaluatorFactory='org.jasig.portal.layout.dlm.providers.PersonEvaluatorFactory'>
          <paren mode="AND">
            <attribute name="username" mode='equals' value='guestXXX-lo'/>
          </paren>
        </dlm:audience>
      </dlm:fragment>
    
  • Pour chaque profil invité :
    • Créer un fichier d'import de profil dans fragment-layout/guestXXX-lo. fragment-layout
    • Importer le profil dans la base :
  ant db.import...
  • Se connecter en administrateur du portail
  • Avec le canal Identity Swapper, prendre l'identité de l'utilisateur invité
  • Changer le thème

Accès personnalisé à l'ENT

Pour accéder à l'ENT en mode anonyme avec le profil guestXXX-lo, utiliser l'URL :http://ent.univ.fr/Guest?uP_guest=guestXXX-lo

  • Aucune étiquette