...
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
...
comme
...
suit
...
:
...
-
...
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
...
:
...
SI:YalePersonFactory.java
...
|YalePersonFactory.java
...
SI:YalePersonImpl.java
...
|YalePersonImpl.java
...
SI:YalePersonManager.java.java
...
|YalePersonManager.java.java
...
* Indiquer dans custom/uPortal/properties/portal.properties
...
l'implémentation
...
de
...
PersonManager
...
à
...
utiliser
...
:
...
org.jasig.portal.security.PersonManagerFactory.implementation=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,
...
ajouter
...
:
| Bloc de code |
|---|
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
...
:
| Bloc de code |
|---|
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"); } } } } |
======
...
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 profil dans layout/guestXXX-lo.xml
...
* Créer l'utilisateur
...
dans
...
la
...
base
...
uPortal
...
:
ant user.add
...
-Dusername=guestXXX-lo
...
Redéployer
...
et
...
relancer
...
uPortal
...
pour
...
prendre
...
en
...
compte
...
les
...
profils
...
Se
...
connecter
...
en
...
administrateur
...
du
...
portail
...
Ajouter
...
les
...
profils
...
invités
...
dans
...
le
...
groupe
...
"Anonymes"
...
Pour
...
chaque
...
profil
...
invité
...
:
* Importer le profil dans la base :
ant layout.import -Dusername=guestXXX-lo
...
* Se connecter en local avec le nom du profil et 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
...