13.05.2014 Views

these doctorat une architecture de securité

these doctorat une architecture de securité

these doctorat une architecture de securité

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Section 6.2. Interface <strong>de</strong> programmation<br />

// le fichier "domainPSM.xml" contient les informations<br />

// necessaires a la creation du gestionnaire <strong>de</strong> securite<br />

ProActiveSecurityManager psm = new ProActiveSecurityManager("domainPSM.xml");<br />

// creation <strong>de</strong>s meta objets du futur objet actif<br />

MetaObjectFactory factory = ProActiveMetaObjectFactory.newInstance();<br />

// ajout du gestionnaire <strong>de</strong> securite aux meta objets<br />

factory.setProActiveSecurityManager(psm);<br />

Ensuite vient la création <strong>de</strong> l’objet actif, sur le nœud par défaut, en lui passant l’ensemble<br />

<strong>de</strong>s méta objets nécessaires à sa création. Le paramètre passé à l’objet actif correspond au fichier<br />

contenant les politiques <strong>de</strong> sécurité du domaine. Ce fichier peut être différent <strong>de</strong> celui qui a<br />

servi à spécifier les politiques <strong>de</strong> sécurité propres à l’objet actif. Il est ainsi possible d’écrire <strong>de</strong>s<br />

politiques <strong>de</strong> sécurité spécifiques pour les entités sécurisées contenues dans le domaine et <strong>de</strong><br />

spécifier d’autres politiques <strong>de</strong> sécurité pour l’entité sécurisée représentant le domaine dont les<br />

besoins en termes <strong>de</strong> sécurité peuvent être différents.<br />

// creation <strong>de</strong> l’objet sur le noeud par <strong>de</strong>fault<br />

No<strong>de</strong> no<strong>de</strong> = No<strong>de</strong>Factory.getDefaultNo<strong>de</strong>();<br />

tel-00239252, version 1 - 5 Feb 2008<br />

// le fichier "Domaine_A.xml" contient les politiques <strong>de</strong> securite<br />

// du domaine.<br />

Object[] params = { "Domaine_A.xml" } ;<br />

// creation <strong>de</strong> l’objet actif<br />

Domain domainA = (Domain) ProActive.newActive("org.objectweb.proactive.ext.<br />

security.domain.Domain", params, no<strong>de</strong> , null, factory);<br />

6.2 Interface <strong>de</strong> programmation<br />

Nous avons pour le moment présenté l’intégration transparente <strong>de</strong> la sécurité. Afin <strong>de</strong> compléter<br />

notre modèle, nous avons ajouté <strong>une</strong> interface <strong>de</strong> programmation (API) permettant à un<br />

utilisateur, s’il le désire, d’intégrer <strong>de</strong>s primitives <strong>de</strong> sécurité à son co<strong>de</strong> afin d’obtenir <strong>de</strong>s informations<br />

relatives à la sécurité <strong>de</strong> son application.<br />

Lors <strong>de</strong> l’exécution d’un objet actif sécurisé, le programmeur peut avoir besoin d’accé<strong>de</strong>r à<br />

diverses informations concernant l’i<strong>de</strong>ntité sous laquelle son co<strong>de</strong> s’exécute.<br />

// retourne le certificat <strong>de</strong> l’objet actif<br />

ProActiveSecurity.getMyCertificate();<br />

// retourne la chaine <strong>de</strong> certification <strong>de</strong> l’objet actif<br />

ProActiveSecurity.getMyCertificateChain();<br />

// retourne la cle prive <strong>de</strong> l’objet actif<br />

ProActiveSecurity.getMyPrivateKey();<br />

Selon la localisation <strong>de</strong> l’objet actif, le programme peut adopter un comportement différent.<br />

La métho<strong>de</strong><br />

// retourne la hierarchie <strong>de</strong>s entites englobant l’objet<br />

ProActiveSecurity.getEntities();<br />

permet d’obtenir la hiérarchie <strong>de</strong>s entités contenant l’objet actif.<br />

Hormis les primitives concernant l’i<strong>de</strong>ntité et la localisation, le programme peut avoir besoin<br />

<strong>de</strong> savoir quelle est l’entité qui a exécuté l’appel menant à l’exécution <strong>de</strong> la métho<strong>de</strong>. Pour cela,<br />

le programmeur dispose du jeu d’instructions suivant :<br />

103

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!