Jump to content

[Contourné] Problème de droits d'accès avec Tomcat


Recommended Posts

Bonjour à tous,

Depuis hier, je suis bloqué par un problème dont la solution devrait pourtant être triviale, mais ne l'est visiblement pas. Mes recherches et essais jusqu'à maintenant n'ayant rien donné, j'espère que quelqu'un ici pourra m'aider. J'ai hésité à mettre ce fil dans la section Linux, mais quand bien même c'est plus de l'administration que du développement, je suspecte le problème d'être spécifique au couple Tomcat + JDK utilisé (ça devrait normalement être OK avec un autre JDK, mais la machine de développement utilisant celui de Sun, j'ai préféré utiliser le même (enfin, presque, la machine de dev étant sous Windows) en pensant que ça ne pouvait que bien marcher), donc je pense que les personnes ici présentent sont le plus à même de pouvoir répondre à mes questions.

Donc, pour ce qui est des symptômes, les messages d'erreur remontés dans le log sont les suivants :

Sep 5, 2008 1:34:03 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive MyStrutsApp
Sep 5, 2008 1:34:03 PM org.apache.catalina.startup.TldConfig tldScanJar
SEVERE: Exception processing TLD META-INF/x-rt.tld in JAR at resource path /var/lib/tomcat5.5/webapps/MyStrutsApp/WEB-INF/lib/standard.jar in context /MyStrutsApp
java.security.AccessControlException: access denied (java.io.FilePermission /usr/share/java/jsp-api-2.0.jar read)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:523)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
(snip)
Sep 5, 2008 1:34:03 PM org.apache.catalina.startup.TldConfig tldScanJar
SEVERE: Exception processing TLD META-INF/c.tld in JAR at resource path /var/lib/tomcat5.5/webapps/MyStrutsApp/WEB-INF/lib/standard.jar in context /MyStrutsApp
java.security.AccessControlException: access denied (java.io.FilePermission /usr/share/java/jsp-api-2.0.jar read)
(snip, erreur répétée pour tous les fichiers .tld du projet)
Sep 5, 2008 1:34:03 PM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
Sep 5, 2008 1:34:03 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/MyStrutsApp] startup failed due to previous errors

Les droits du système de fichier sont corrects (et puis l'erreur concerne les droits gérés par la JVM, pas l'OS). Au niveau de la gestion des droits Java, les lignes suivantes contenues dans le fichier /etc/tomcat5.5/policy.d/02debian.policy autorisent-elles l'accès à tout ce qui est nécessaire aux librairies contenues dans /usr/share/java/ (comme j'ai tendance à le penser) ? Ou bien autorisent-elles l'accès au contenu de ce dossier à tout ce qui est géré par Tomcat ?

grant codeBase "file:/usr/share/java/-" {
permission java.security.AllPermission;
};

J'ai essayé de lancer mon application avec et sans les lignes suivantes dans /etc/tomcat5.5/policy.d/50user.policy, en m'inspirant de ce qui existait déjà et des exceptions du log, mais cela n'a pas provoqué de changement.

grant codeBase "file:${catalina.base}/webapps/MyStrutsApp/WEB-INF/lib/standard.jar" {
permission java.io.FilePermission "/usr/share/java/jsp-api-2.0.jar", "read";
};

J'ai aussi essayé de lancer mon application après avoir mis jsp-api-2.0.jar dans son dossier lib, mais ce dernier se faisait alors ignorer, car visiblement l'autre était chargé par Tomcat avant de charger les applications.

Je crains d'avoir usé un petit peu toutes les cartouches dont je disposais. Je pense que je n'ai pas fouillé tout l'Internet encore, donc peut-être trouverais-je une solution. Mais je ne me fait guère d'illusion, que plus tôt j'aurais cette épine sortie de mon pieds, mieux ça sera.

Merci d'avance. :chinois:

Edit :

Un dernier petit détail, mon application marche si dans les réglages globaux de Tomcat la valeur TOMCAT5_SECURITY est mise à 'no'. Mais je préférerais, vous vous en doutez bien, garder cette valeur à 'yes'.

Link to comment
Share on other sites

Bon, la prochaine fois je prendrais le temps de vérifier que je tape les choses correctement. Sur le serveur, dans le dernier extrait de code que je donne, j'avais fini mon nom de fichier en ".jsp" et non ".jar". Évidemment, ça fait tâche, et j'ai l'air con maintenant. :ooo Merci en tout cas, car c'est en cherchant de l'information pour toi que je m'en suis rendu compte. Pour les messages d'erreur, le contenu du fichier localhost.log était plutôt intéressant. Mais je ne suis plus au boulot là, donc je ne peux pas poster quoi que ce soit. Enfin, c'est encore une collection d'exceptions.

Bon, il me reste la même erreur, mais pour cette fois l'accès au fichier struts-default.xml, à l'intérieur d'un fichier .jar dans le dossier lib de mon application. Je prendrais le temps de me documenter pour la syntaxe à utiliser pour faire référence à un fichier à l'intérieur d'une archive (rendre le jar accessible avec la même syntaxe que précedemment ne suffit visiblement pas). On verra lundi, et je vous tiendrais au courant.

Link to comment
Share on other sites

Disons que c'est à moitié résolu. Le problème que j'avais avant n'avait pas sa source là où je pensais que c'était (à savoir une maivaise compréhension de ma part du système qui gère la sécurité dans la machine virtuelle de Sun, et sa configuration sous Tomcat), mais celui qui est apparu derrière est de cette nature. Bref, ça ne sera résolu que quand j'aurais bien compris comment la configuration de la politique de sécurité marche et réussi à configurer la chose.

En espérant que ça soit plus clair. :transpi:

Link to comment
Share on other sites

Bon, au final le problème est en quelque sorte résolu. Contourné pour être plus précis. Le fichier contenu dans le fichier JAR (struts-default.xml), auquel je souhaitais accéder, pouvait être extrait et placé dans WEB-INF/classes. Alors il peut être lu sans problème. En espérant que je ne tombe pas sur un tel truc, mais en version non contournable, par la suite. :love:

Je modifie le titre du fil. ;)

EDIT: Pour une raison que j'ignore, cette modification a fait remonter d'autres problèmes de droits, auxquels je m'attendais et que j'ai traité. Puis une fois ces derniers résolu, à nouveau elle est apparu. Donc mon problème est toujours présent. :cartonrouge:

EDIT 2: Bon, finalement vu l'on a tout contrôle sur Tomcat et les applications déployées, plutôt que de se faire chier on va faire sans le gestionnaire de sécurité intégré à Java. Problème contourné donc.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...