Le Realm com.hardis.adelia.cloud.security.realms.RequestRealm permet de passer des credentials à partir d'une requête http.
Il peut être utilisé dans le cas d'une authentification amont auprès d'un portail et d'une redirection vers l'application Adélia Cloud.
Configuration du fichier Wagon.xml
<realm name="reflex" loginModuleName="LdapModule" className="com.hardis.adelia.cloud.security.realms.RequestRealm"/>
|
Configuration de la servlet index.jsp
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %> <%@ taglib prefix="x" uri="http://adelwagon.adelia.hardis.com/adelwagon" %> <x:pushCustomVariable key="login"><%=request.getParameter("login")%></x:pushCustomVariable> <x:pushCustomVariable key="password" cipher="true"><%=request.getParameter("password")%></x:pushCustomVariable> <t:adeliaDesktop title="Adelia Desktop"> <jsp:attribute name="head_header"> <x:customSessionVariables/> </jsp:attribute> </t:adeliaDesktop>
|
L'appel s'effectue par http://host[:port]/myapp/index.jsp?login=myuser&password=mypassword.
Remarque : le login et le password sont passés en clair
Utilisation d'un secureID chiffré
Configuration de la servlet index.jsp :
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %><%@ taglib prefix="x" uri="http://adelwagon.adelia.hardis.com/adelwagon" %><x:pushCustomVariable key="secureID"><%=request.getParameter("secureID")%></x:pushCustomVariable><t:adeliaDesktop title="Adelia Desktop"><jsp:attribute name="head_header"><x:customSessionVariables/></jsp:attribute></t:adeliaDesktop>
|
L'appel s'effectue par http://host[:port]/myapp/index.jsp?secureID={....}.
Création d'un secureID
http://host[:port]/myapp/RsaServlet?action=secureID&map=login=mylogin;password=mypassword
Principe d'utilisation depuis un portail
L'application Portail, depuis son côté serveur demande la création d'un secureID à partir de la servlet http://host[:port]/myapp/RsaServlet?action=secureID&map=login=mylogin;password=mypassword.
Elle peut ensuite renvoyer au navigateur client une page html pointant sur http://host[:port]/myapp/index.jsp?secureID={....}
Remarque : si l'appel s'effectue en GET, il convient d'encoder en URL le secureID. Par exemple en javascript avec l'api encodeURIComponent : URLEncodedSecureID=encodeURIComponent(secureID); windows.open('http://host[:port]/myapp/index.jsp?secureID='+URLEncodedSecureID).