Réglage de catalina.politique pour permettre l'accès aux fichiers par les servlets

Nous avons développées localement et triple magasin basé sur les b-arbres qui je veux utiliser pour le stockage persistant dans un certain nombre d'applications de servlets. Plutôt que d'intégrer l'index b-tree fichiers dans la servlet .la guerre, je tiens à les stocker dans un emplacement connu et ont les servlets y accéder directement. Tout cela fonctionne dans la Jetée, mais soulève une exception de sécurité quand je l'ai essayer dans Tomcat. Je me suis dit que Tomcat modèle de sécurité nécessite des autorisations explicites pour un servlet pour accéder à des fichiers à l'extérieur de l'arborescence du répertoire où l' .la guerre est déballé. Si j'ai bien compris le Tomcat (version 5.5) la documentation correctement, la suite ajouté à catalina.policy devrait permettre à la servlet pour accéder au répertoire dans lequel les fichiers d'index sont:

grant codeBase "jar:file:${catalina.home}/webapps/mytestapp/-"
{
  permission java.io.FilePermission "/var/data/tdb/-", "read, write, delete"; 
}

Cependant, je reçois toujours une exception de sécurité:

java.io.FileNotFoundException: 
                    /var/data/tdb/kb/node2id.idn (Permission denied)
    at java.io.RandomAccessFile.open(Native Method)
    ...

De cocher l'évidence muette erreurs: j'ai vérifié que les fichiers d'index sont au bon endroit, avec les autorisations correctes, et ne sont pas endommagés. Des suggestions ou des conseils sur ce que j'ai tort dans les paramètres de sécurité seront reçues avec reconnaissance.

Vous pouvez peut-être post comment vous ouvrez le fichier / quel est le code que vous utilisez pour le faire?
Exécutez-vous selinux? Si oui, vous devrez peut-être configurer selinux afin qu'il permettra l'accès à ce répertoire en Java.

OriginalL'auteur Ian Dickinson | 2009-02-23