these doctorat une architecture de securité
these doctorat une architecture de securité
these doctorat une architecture de securité
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