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é.
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.
org.jasig.portal.security.PersonManagerFactory.implementation=edu.yale.its.portal.security.provider.YalePersonManager |
La servlet d'accès anonyme doit être modifiée pour accepter le paramètre uP_guest :
String targetFname = request.getParameter("uP_fname");String targetArgs = request.getParameter("uP_args"); // Multi Guests : add uP_guest parameter String targetGuest = request.getParameter("uP_guest"); |
* Vers ligne 127, ajouter :
if (targetFname != null) { redirectTarget = redirectTarget + "?uP_fname=" + URLEncoder.encode(targetFname, "UTF-8"); if (targetArgs != null) { redirectTarget = redirectTarget + "&uP_args=" + URLEncoder.encode(targetArgs, "UTF-8"); } } // Multi Guests : add uP_guest parameter if (targetGuest != null) { if (targetFname != null) { redirectTarget = redirectTarget + "&uP_guest=" + URLEncoder.encode(targetGuest, "UTF-8"); } else { redirectTarget = redirectTarget + "?uP_guest=" + URLEncoder.encode(targetGuest, "UTF-8"); } } |
<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> |
<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> |
ant user.add -Dusername=guestXXX-lo |
ant layout.import -Dusername=guestXXX-lo |
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