OVH Cloud OVH Cloud

[TOMCAT]acces limite a des jsp

2 réponses
Avatar
Olivier Pierrier
Bonjour,

Je souhaite pouvoir limiter l'accès à une jsp. J'entends par là une
plage d'adresse IP est authorisée à utiliser cette jsp.

Description du probleme :
Sous Tomcat 4.1, j'ai une jsp dans plusieurs web-apps, donc je pense
configurer cela dans WEB-INF/web.xml

Je souhaite faire quelchose comme cela.
<security-constraint>
<web-resource-collection>
<web-resource-name>Toto</web-resource-name>
<url-pattern>/configure/*</url-pattern>
</web-resource-collection>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1"/>
</security-constraint>

Naturellement, ca ne fonctionne pas, c'est trop facile sinon.

Une solution serait :
<!-- location of the config file for protected JSP: -->
<init-param>
<param-name>ConfigFile</param-name>
<param-value>dans ma web-app ou je sais pas ou</param-value>
</init-param>

Le probleme est que c'est pas joli joli de devoir refaire une contrôle
de securite dans ma jsp.

Si vous avez une idée pour transférer le travail de filtre a Tomcat pour
une jsp particulière pour une web-app particulière, je suis interessé.

Merci pour vos réponses / commentaires,

Olivier.

2 réponses

Avatar
jerome moliere
Olivier Pierrier wrote:

Bonjour,

Je souhaite pouvoir limiter l'accès à une jsp. J'entends par là une
plage d'adresse IP est authorisée à utiliser cette jsp.

Description du probleme :
Sous Tomcat 4.1, j'ai une jsp dans plusieurs web-apps, donc je pense
configurer cela dans WEB-INF/web.xml

Je souhaite faire quelchose comme cela.
<security-constraint>
<web-resource-collection>
<web-resource-name>Toto</web-resource-name>
<url-pattern>/configure/*</url-pattern>
</web-resource-collection>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1"/>
</security-constraint>

Naturellement, ca ne fonctionne pas, c'est trop facile sinon.

pourquoi ? qu'est ce qui ne fonctionne pas ?

des traces ? logs ?
une valve me semblerait ideale pour faire cela en effet....

Une solution serait :
<!-- location of the config file for protected JSP: -->
<init-param>
<param-name>ConfigFile</param-name>
<param-value>dans ma web-app ou je sais pas ou</param-value>
</init-param>

Le probleme est que c'est pas joli joli de devoir refaire une contrôle
de securite dans ma jsp.

Si vous avez une idée pour transférer le travail de filtre a Tomcat pour
une jsp particulière pour une web-app particulière, je suis interessé.


utiliser un Filter HTTP dans ta web-app (quasi la meme chose qu'une
valve tomcat)
mais pas la meme portee (limitee a la web-app)

Jerome

--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003
http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean13—82212111941

Avatar
Olivier Pierrier
Salut Jerôme,

jerome moliere wrote:

Olivier Pierrier wrote:

Bonjour,

Je souhaite pouvoir limiter l'accès à une jsp. J'entends par là une
plage d'adresse IP est authorisée à utiliser cette jsp.

Description du probleme :
Sous Tomcat 4.1, j'ai une jsp dans plusieurs web-apps, donc je pense
configurer cela dans WEB-INF/web.xml

Je souhaite faire quelchose comme cela.
<security-constraint>
<web-resource-collection>
<web-resource-name>Toto</web-resource-name>
<url-pattern>/configure/*</url-pattern>
</web-resource-collection>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1"/>
</security-constraint>

Naturellement, ca ne fonctionne pas, c'est trop facile sinon.

pourquoi ? qu'est ce qui ne fonctionne pas ?

des traces ? logs ?
une valve me semblerait ideale pour faire cela en effet....
Si on regarde sur le site apache/tomcat, on s'aperçoit que

security-constraints ne prend pas de 'parametre' valve. Je ne peux pas
de montrer de trace ou de log, j'ai l'impression que c'est tout
simplement ignorer.


Une solution serait :
<!-- location of the config file for protected JSP: -->
<init-param>
<param-name>ConfigFile</param-name>
<param-value>dans ma web-app ou je sais pas ou</param-value>
</init-param>

Le probleme est que c'est pas joli joli de devoir refaire une contrôle
de securite dans ma jsp.

Si vous avez une idée pour transférer le travail de filtre a Tomcat pour
une jsp particulière pour une web-app particulière, je suis interessé.


utiliser un Filter HTTP dans ta web-app (quasi la meme chose qu'une
valve tomcat)
mais pas la meme portee (limitee a la web-app)


Si je comprends ce que tu veux dire, appliquer un Flter HTTP dans le
server.xml pour filtrer l'accès à la web-app ? Dans ce cas toutes mes
servlets seront limitées en accès et je veux seulement limiter l'accès à
une seule plus critique.

Mon problème est que le filtre de doit concerner qu'une servlet ( ou JSP
c'est la meme chose ) dans la web-app. Et si cette servlet existe dans
plusieurs web-app, le filtre peut être différent à chaque fois.

C'est pour quoi, les règles d'accès doivent être définies dans le
web.xml local à la web-app.

C'est pourquoi j'ai utilisé cette solution :
<servlet>
<servlet-name>name</servlet-name>
<display-name>display-name</display-name>
<description>description</description>
<servlet-class>com.truc.MaServlet</servlet-class>
<init-param>
<param-name>AllowedIPs</param-name>
<param-value>127.0.0.1,192.168.1.*</param-value>
</init-param>
</servlet>

et je fais le filtre moi même dans la servlet en utilisant les règles de
tomcat ( si rien n'est marqué, tout passe ).

Cependant j'aurais aimé que Tomcat se charge de cette partie du travail,
seulement je n'ai toujours pas de solutions, alors je garde la mienne.

Merci pour ta réponse,
Olivier