Il est possible d'effectuer un passage de paramètres sécurisés entre javax.servlet.http.HttpServletRequest et une session Cloud.
Principe de fonctionnement
Ce passage de paramètres est nécessaire si l'utilisateur souhaite lancer l'application au travers d'une URL de type http://host/mywebapp/index.jsp?secureID={RSA}oV8ig8IAFq02y+9reN3b...
L'ensemble des paramètres sont regroupés dans une map <clef,valeur> chiffrée appelée secureID.
Structure de la servlet principale index.jsp :
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %> <%@ taglib prefix="adelwagon" uri="http://adelwagon.adelia.hardis.com/adelwagon" %> <adelwagon:pushCustomVariable key="secureID"><%=(request.getParameter("secureID")!=null ? request.getParameter("secureID") : "")%></adelwagon:pushCustomVariable> <t:adeliaDesktop title="Adelia Desktop" desktopName="default" frameOptions="SAMEORIGIN"> <jsp:attribute name="head_header"> <adelwagon:customSessionVariables/> <link href="logo/logo.css" rel="stylesheet" type="text/css"/> </jsp:attribute> <jsp:attribute name="head_footer"></jsp:attribute> <jsp:attribute name="body_header"></jsp:attribute> <jsp:attribute name="body_footer"></jsp:attribute> </t:adeliaDesktop>
|
Création de la map <clef,valeur> chiffrée
Outil de génération interactive
http://host[:port]/yourapplication/console/cipher.jsp
Remarque : il vous sera demandé de vous connecter avec un profil JEE ayant le rôle "wagon-administrator".
Exemple :
L'utilisateur souhaite appeler la page avec 3 paramètres, le profil de connexion (clef login), le mot de passe (clef password) et un identifiant (cle id).
La génération du secureID s'effectue ainsi :
Génération du secureID au travers de la servlet /RSAServlet
http://host[:port]/yourapplication/RsaServlet?action=secureID&map=login=james;password=mi6;id=007
Appel de la page
http://host[:port]/yourapplication/index.jsp?secureID=%7BRSA%7DoklWB....ePdUspMVva8bokMJMJmj%2FFFQ%3D%3D
Remarque : dans le cadre d'un GET, il convient de passer le secureID sous sa forme URL Encoded.
Récupération des paramètres depuis une classe Java
secureidMap =null; String requestSecureID=(String) this.getSessionContext().getMainContainerConfiguration().getAttributes().get("custom.secureID"); if (requestSecureID!=null){ secureidMap = WagonCipher.getInstance().decodeMap(requestSecureID); if (secureidMap!=null) { String login=secureidMap.get("login"); String password=secureidMap.get("password"); String id=secureidMap.get("id"); } }
|
Remarque : la clef secureID est accessible aux niveaux des attributs de la session par custom.secureID.
Récupération des paramètres depuis un programme VisualAdelia
ALPHA(256) W_CUSTOMKEY ALPHA(1024) W_LOGINALPHA(1024) W_PASSWORDALPHA(1024) W_IDW_CUSTOMKEY='custom.secureID.login' APPELER_CLASS 'vatoolbx' 'VaToolBxCloudGetSessionAttribute' W_CUSTOMKEY W_LOGIN 1024
W_CUSTOMKEY='custom.secureID.password' APPELER_CLASS 'vatoolbx' 'VaToolBxCloudGetSessionAttribute' W_CUSTOMKEY W_PASSWORD 1024 W_CUSTOMKEY='custom.secureID.id' APPELER_CLASS 'vatoolbx' 'VaToolBxCloudGetSessionAttribute' W_CUSTOMKEY W_ID 1024
|
Récupération des paramètres depuis un LoginModule.
Le paramètre secureID est connu par Adélia Cloud. A ce titre, il permet une authentification "transparente" dès lors que les clefs login et password sont générées dans le secureID.
Dans le cadre de l'appel d'un ou d'une chaine de LoginModule, l'ensemble des couples <clef;valeur> sont transmises au LoginModule.
Exemple :
Un AdeliaLoginModule, reçoit dans la liste LstAttrRealm, les trois clefs login,password et id ainsi que les valeurs associées.
Exemple d'intégration et d'appel depuis une application externe
Exemple PHP
<?php $payload = file_get_contents('http://host/yourapplication/RsaServlet?action=secureID&map=login=james;password=mi6;id=007'); echo '<a href="http://host/yourapplication?secureID=',urlencode($payload),'" target="_new">Cliquez ici</a>'?>
|
Exemple JSP
Cet exemple utilise l'api HttpClient du projet Apache.
<%@ page import="org.apache.http.*,org.apache.http.client.*,org.apache.http.impl.client.*,org.apache.http.client.methods.*,java.net.*,java.io.*,java.lang.*,java.util.*"%> <% String url="http://host/yourapplication/RsaServlet?action=secureID&map=login=james;password=mi6;id=007"; HttpClient httpclient = HttpClientBuilder.create().build(); HttpGet rsaRequest = new HttpGet(url); HttpResponse rsaResponse = httpclient.execute(rsaRequest); BufferedReader rd = new BufferedReader(new InputStreamReader(rsaResponse.getEntity().getContent()));
String line = null; String secureID = ""; while ((line = rd.readLine()) != null) { secureID+=line; } %> <a href="http://host/yourapplication?secureID=<%=URLEncoder.encode
|
↑ Haut de page Copyrights Ι ©Hardis Group 2025 - Toute représentation ou reproduction intégrale ou partielle faite sans le consentement écrit d'Hardis Group est illicite.