r146 - in trunk: simexplorer-is simexplorer-is/src/site/fr/rst/devel simexplorer-is-entities/src simexplorer-is-service/src simexplorer-is-service-ear/src simexplorer-is-storage/src simexplorer-is-web/src
Author: glandais Date: 2008-01-11 15:03:13 +0000 (Fri, 11 Jan 2008) New Revision: 146 Added: trunk/simexplorer-is-entities/src/site/ trunk/simexplorer-is-service-ear/src/site/ trunk/simexplorer-is-service/src/site/ trunk/simexplorer-is-storage/src/site/ trunk/simexplorer-is-web/src/site/ Modified: trunk/simexplorer-is/pom.xml trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst Log: maven site Modified: trunk/simexplorer-is/pom.xml =================================================================== --- trunk/simexplorer-is/pom.xml 2008-01-11 13:43:07 UTC (rev 145) +++ trunk/simexplorer-is/pom.xml 2008-01-11 15:03:13 UTC (rev 146) @@ -53,7 +53,43 @@ <build> <plugins> <plugin> + <groupId>lutinplugin</groupId> + <artifactId>maven-jrst-plugin</artifactId> + <version>0.8</version> + <executions> + <execution> + <id>jrst</id> + <phase>test</phase> + <!-- test works better than pre:site --> + <goals> + <goal>jrst</goal> + </goals> + </execution> + </executions> + <configuration> + <directoryIn>${basedir}/src/site</directoryIn> + <directoryOut> + ${basedir}/target/generated-site/xdoc + </directoryOut> + <verbose>true</verbose> + <!-- verbose>${maven.verbose}</verbose --> + </configuration> + </plugin> + <plugin> <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <configuration> + <outputEncoding>ISO-8859-1</outputEncoding> + <locales>fr</locales> + <siteDirectory>src/site</siteDirectory> + <generateReports>false</generateReports> + <xdocDirectory> + ${basedir}/target/generated-site/xdoc/fr/rst + </xdocDirectory> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ejb-plugin</artifactId> <configuration> <ejbVersion>3.0</ejbVersion> Modified: trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst 2008-01-11 13:43:07 UTC (rev 145) +++ trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst 2008-01-11 15:03:13 UTC (rev 146) @@ -96,4 +96,46 @@ On souhaite pouvoir gérer des utilisateurs et des groupes ayant des droits sur les entités de l'application. -L'authentification \ No newline at end of file +L'authentification +------------------ + +Les utilisateurs et les groupes sont des données pouvant être stockées dans une base de données, +embarquée type H2 ou dédiée type PostGreSQL. +Afin de permettre le choix de la base et la simplification du développement de l'intégration et du +développement, le stockage sera géré par JPA. + +L'authentification en elle même peut se baser sur JAAS, afin de bénéficier de son expérience +de sécurisation. + +Deux possibilités s'offrent pour l'authentification : + - se baser entièrement la sécurité de JBoss (JBossSX) + Cette solution a l'avantage et l'inconvénient d'être très intégré aux EJB, permettant + de retrouver le Principal de façon simple. De plus, si l'application web est lancée dans le même + JBoss, elle peut utiliser le même contexte de sécurité. + + - créer un EJB d'authentification et fournir un "token" à l'utilisateur + Cette solution implique des développement plus lourds lors des appels métiers, en demandant + à l'utilisateur du service de prouver qu'il est bien authentifié. Le système utilisé serait celui + utilisé par les applications web pour authentifier l'utilisateur, avec un cookie contenant un identifiant + de session. Ce contexte de connexion est alors à passer à chaque appel de méthode. + +La deuxième solution possède le net avantage de ne pas dépendre sur l'implémentation de sécurité de JBoss. + +Les autorisations +----------------- + +De la même façon que la base de données est gérée, une interface définie ce que doit implémenter le service +de gestion des autorisations : + + #. Ajout/création/suppression d'entités (uniquement son identifiant) + #. Ajout/création/suppression des permissions sur les entités + #. Vérification des permissions sur un élément par rapport à un utilisateur + #. Filtrage d'une liste de résultats + +Le principal problème réside dans la recherche par contenu. En effet, cette partie étant gérée par la base +de données, il est possible d'intéragir avec les résultats uniquement a posteriori. Ainsi, le comptage +du nombre de résultats auquel l'utilisateur a accès n'est pas possible. +Il est néanmoins possible d'afficher le nombre de résultats hors filtrage, puis d'appliquer les autorisations +à l'affichage de chaque ligne de résultat. L'utilisateur obtient alors tout de même le nombre d'éléments +auxquels il n'a pas accès. +
participants (1)
-
glandais@users.labs.libre-entreprise.org