Cacher les sources JSP/Java - Java - Programmation
Marsh Posté le 08-07-2009 à 18:03:41
Citation : |
Je ne vois pas exactement ce que tu veux dire. Comment un internaute pourrait consulter le code de ta JSP? Ce que l'internaute voit, c'est le code HTML pondu par ta JSP.
Citation : |
En fait, les JSP sont TOUJOURS compilées en *.class, en général, la première fois qu'elles sont appelées. Concrètement, le cycle de vie d'une JSP, c'est
-réception de la requête concernant une jsp
-contrôle de la version compilée de la JSP (échec si le .class n'existe pas ou si la version du point class ne correspond pas à la version de la JSP)
-si la version n'est pas bonne, compiler la JSP et en faire un .class. Si la version est bonne sauter cette étape
-jouer la requête sur la JSP compilée
Maintenant, tu as certaines options (style -nojit -> no just-in-time compiler) qui permettent de déclarer que tu fournis toi même les versions compilées des JSP et qu'il n'y a pas besoin de faire les contrôles de version.
Enfin, si tu as peur que quelqu'un puisse accéder au .class et que tu ne veux pas qu'il te les décompile, tu peux utiliser un obfuscator (un programme qui transforme ton code de manière non bijective pour le rendre totalement illisible mais en assurant les mêmes fonctionnalités)
J'espère avoir répondu à tes questions
Marsh Posté le 08-07-2009 à 18:55:49
Merci pour tes réponses .
En effet je n'ai pas été très clair, ce que je veux c'est empêcher la consultation des .jsp par les administrateurs du serveur (techniciens, etc.) qui ont donc accès à l'ensemble des fichiers qui y sont stockés.
Les options de type "no just-in-time" semblent répondre à mon problème. Je vais me renseigner là-dessus et essayer de l'intégrer à mon projet.
D'ailleurs j'ai depuis aujourd'hui la même problématique avec des servlets : je voudrais que le serveur J2EE (Tomcat par exemple) puisse se contenter du .class compilé, et donc supprimer le .java sur le serveur. La solution doit être similaire.
Marsh Posté le 19-07-2009 à 18:10:04
C'est anormal de mettre un .java dans l'archive WAR. Je veux dire, il ne sert à rien.
Marsh Posté le 20-07-2009 à 07:56:28
Je ne parlais pas de .java en fait dans le WAR mais surtout de .jsp, les sources de la page HTML. C'est donc un peu l'équivalent des .java.
Marsh Posté le 08-07-2009 à 16:18:50
Bonjour.
Je développe une application en J2EE avec des pages JSP et des sources Java. Je voudrais pouvoir empêcher la consultation des codes sources, Java bien sur mais également des sources JSP et ceci même sur le serveur Web/J2EE.
Bien sur, les parties HTML sont visibles par le client sur le navigateur, mais je voudrais masquer le moindre script JSP.
Il est possible (j'ai vu ça en utilisant Netbeans) de compiler les pages .jsp et d'obtenir un .class. Peut-on configurer le serveur J2EE pour exécuter directement les .class compilés et n'avoir absolument aucune trace d'un .jsp ou d'un .java ?
Merci pour vos réponses.
PS : Je sais aussi qu'il est facile de retrouver les sources Java avec des décompilateurs tel que Jad, mais ce n'est pas le sujet.