url-pattern et des caractères génériques

Lors de la configuration de la sécurité de contraintes pour une web-module de rôles en application J2EE, je vais avoir le problème suivant:

Application:

Donner une servlet nommée customersServlet, qui reçoit deux paramètres dans l'URL:

  • Une chaîne de caractères représentant une opération (INS, UPD, DLT et DSP).
  • Un numéro d'identification pour identifier un client sur lequel l'opération sera effectuée.

E. G.: l'url /servlet/cusotmersServlet?UPD,5 est utilisé pour mettre à jour un numéro de client 5 données, et l'url /servlet/customersServlet?DLT,8 est utilisée pour supprimer un numéro de client 8.

Problème:

Si j'utilise ce security-constraint la servlet ne peuvent être accessibles que par le rôle spécifié, ce qui est ok:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>...</web-resource-name>
        <url-pattern>/servlet/clientsServlet*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>clientAdmin</role-name>
    </auth-constraint>
</security-constraint>

Mais je veux limiter la possibilité d'insérer des clients qu'à un rôle nommé clientAdmin.

J'ai essayé plusieurs formats d'url, mais aucun d'entre eux fonctionne comme je veux (tous de permettre à chaque rôle pour accéder à la servlet avec n'importe quel paramètre):

<url-pattern>/servlet/clientsServlet?INS,*</url-pattern>
<url-pattern>/servlet/clientsServlet?INS/*</url-pattern>
...

Comment utiliser le caractère générique * dans le url-pattern tag?

Remarque: Le application ne peut pas être changé, j'ai donc besoin d'une solution qui implique seulement de toucher le descripteur de déploiement.

OriginalL'auteur mmutilva | 2010-05-04