Sécurité Java 2 et applications OSGi
Vous pouvez utiliser la sécurité Java™ 2 dans les applications OSGi de la même manière que la sécurité Java 2 dans les applications Java EE . Cette rubrique décrit les aspects spécifiques à l'utilisation de la sécurité Java 2 dans une application OSGi.
Les spécifications OSGi permettent de disposer de fichiers permissions.perm dans le répertoire OSGI-INF de chaque bundle, et donc d'appliquer un contrôle précis sur les droits d'accès de chacun d'eux. L'implémentation des applications OSGi dans WebSphere® Application Server prend en charge cette spécification et vous permet également de disposer d'un fichier permissions.perm dans le répertoire META-INF de l'application OSGi, ce qui vous donne un contrôle plus grossier des droits de l'application dans son ensemble.
# Permissions file
( org.osgi.framework.AdminPermission "*" "*" )
( org.osgi.framework.PackagePermission "*" "exportonly,import" )
( org.osgi.framework.ServicePermission "*" "get,register")
( org.osgi.framework.BundlePermission "*" "host,provide,fragment")Relation aux applications Java EE et aux fichiers was.policy
Ces fichiers permissions.perm de niveau d'application ont une fonction similaire à celle des fichiers was.policy dans des applications d'entreprise. Lorsque vous convertissez une application de Java EE en OSGi, tout fichier was.policy existant est converti en fichier permissions.perm à utiliser avec l'infrastructure de droits d'accès OSGi.
Dans la conversion, tous les codebases spécifiés dans le fichier was.policy sont ignorés, et tous les droits d'accès spécifiés sont ajoutés au fichier permissions.perm. Cela signifie que tous les droits d'accès sont promus au niveau de l'application. Si une granularité plus fine est nécessaire, vous pouvez modifier le fichier après sa conversion. Dans ce cas, vous supprimez les droits d'accès requis du fichier permissions.perm résultant et les déplacez dans des fichiers de droits d'accès dans le répertoire OSGI-INF pour chaque bundle affecté.
Restrictions et droits d'accès par défaut
Chaque application OSGi a les droits d'accès et restrictions par défaut suivants, qu'elle comporte ou non un fichier permissions.perm. Vous pouvez utiliser un fichier permissions.perm pour ajouter des restrictions et des droits d'accès supplémentaires ou pour remplacer les restrictions et droits d'accès par défaut.
("org.osgi.framework.ServicePermission", "org.osgi.service.condpermadmin.ConditionalPermissionAdmin", "*")
("org.osgi.framework.ServicePermission", "org.osgi.service.permissionadmin.PermissionAdmin", "*")
("org.osgi.framework.ServicePermission", "org.osgi.service.framework.CompositeBundleFactory", "*")
("org.osgi.framework.ServicePermission", "org.osgi.framework.hooks.service.*", "*")
("org.osgi.framework.ServicePermission", "org.osgi.service.packageadmin.PackageAdmin", "*")Droits d'accès par défaut :("org.osgi.framework.PackagePermission", "*", "import")
("org.osgi.framework.BundlePermission", "*", "host,provide,fragment")("java.io.FilePermission", "<application_path>/-", "read,write")
("java.io.FilePermission", "<application_configpath>/-", "read")
("java.lang.RuntimePermission", "loadLibrary.*", "*")
("java.lang.RuntimePermission", "queuePrintJob", "*")
("java.net.SocketPermission", "*", "connect")
("java.util.PropertyPermission", "*", "read")
("org.osgi.framework.PackagePermission", "*", "exportonly,import")
("org.osgi.framework.ServicePermission", "*", "get,register")