Sécurité Blueprint et applications OSGi
La sécurité des beans peut être définie de telle sorte que leurs méthodes ne soient accessibles que par les utilisateurs dotés d'un rôle particulier.
Vous configurez la sécurité en définissant un ou plusieurs éléments < access-constraint>, dans l'élément < bean> du bean dont vous souhaitez configurer la sécurité, dans le fichier XML Blueprint de votre application OSGi. Si vous ne définissez pas d'élément < access-constraint>, le bean n'est pas sécurisé ; cela signifie que toutes les méthodes du bean sont accessibles à n'importe quel utilisateur.
Pour que la configuration de la sécurité des beans soit efficace, la sécurité des applications doit être activée dans WebSphere® Application Server.
Vous pouvez configurer la sécurité du bean au niveau du bean ou au niveau des méthodes. Si vous configurez la sécurité au niveau du bean et des méthodes, la configuration de niveau méthode est prioritaire.
<blueprint
xmlns="https://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:sec="https://www.ibm.com/appserver/schemas/blueprint/security/v1.0.0">Configuration de la sécurité au niveau du bean
Pour configurer la sécurité au niveau du bean, incluez un attribut de rôle dans la définition de l'élément < access-constraint>. Les méthodes du bean ne sont alors accessibles qu'aux utilisateurs dotés de ce rôle.
<bean
id="secureBean1"
class="com.ibm.ws.eba.wab.componenttest.blueprint.secure.BlueprintSecureServiceImpl">
<sec:access-constraint role="ROLE1" />
</bean>Configuration de la sécurité au niveau des méthodes
Pour configurer la sécurité au niveau des méthodes, ajoutez, en plus de l'attribut de rôle, un attribut de méthode. La méthode indiquée n'est alors accessible qu'aux utilisateurs dotés du rôle indiqué.
<bean
id="secureBean1"
class="com.ibm.ws.eba.wab.componenttest.blueprint.secure.BlueprintSecureServiceImpl">
<sec:access-constraint method="getPrice" role="ROLE1" />
</bean><bean
id="secureBean1"
class="com.ibm.ws.eba.wab.componenttest.blueprint.secure.BlueprintSecureServiceImpl">
<sec:access-constraint method="getPrice" role="ROLE1" />
<sec:access-constraint method="printReport" role="ROLE2" />
<sec:access-constraint role="ROLE3" />
</bean>Affectation des rôles
Pour affecter un rôle à des utilisateurs ou à des groupes, utilisez le panneau Mappage rôle de sécurité-utilisateur/groupe de la console d'administration de WebSphere Application Server .