Téléchargement des produits


Version anglaise


 

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

  • Aucune étiquette