[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sdx-developers] SecurityAction
From: |
Pierrick Brihaye |
Subject: |
[sdx-developers] SecurityAction |
Date: |
Fri, 13 Jun 2003 21:14:25 +0200 |
Salut,
J'ai commencé dès hier l'écriture d'une action de sécurité (v. sdx-users).
Voici comment je compte m'y prendre :
<map:act type="security">
<map:parameter name="ip"
value="[1-2]?\d{1,2}\.[1-2]?\d{1,2}\.[1-2]?\d{1,2}\.[1-2]?\d{1,2}"/>
<map:parameter name="host" value="xxx"/>
<map:match ...>
1er problème : quel parti prendre ? interdire pour autoriser ou l'inverse ?
2ème problème : je suis bien conscient que les expressions régulières ne
sont pas la panacée, mais c'est la solution la plus élégante que j'aie
trouvé pour ces #¤$%~@ de paramètres Avalon qui ne sont pas répétables :-(
Ensuite, je suis d'ores et déjà capable de choper les paramètres de sitemap
ou de request qui me permettent de choper une application respectivement par
son path et par son id.
Problème : si je demande l'appli au framework, un path ou une id invalides
vont me lancer une exception. Ce n'est pas un peu violent ? null ne
suffirait pas ? Je suis plutôt adepte du try ... catch mais là, c'est
peut-être un peu trop.
Pourquoi choper l'appli ? Pour aller chercher son paramétrage de sécurité
bien sûr.
Ici, encore un problème : l'objet de configuration est perdu. Dommage, on
aurait pu assez facilement le mapper comme les vulgaires paramètres indiqués
ci-dessus et mutualiser le code. Que faire ? Garder l'objet de config ou
ajouter les paramètres de sécurité aux propriétés de l'appli qui, elles,
sont naturellement publiques. A titre personnel, je préfère travailler avec
la config, mais ce n'est pas le parti qui a été pris jusqu'à présent.
Note par rapport à la réponse de Martin : je tiens absolument à garder une
action qui ne serait pas dans un contexte d'appli : elle pourrait servir un
jour dans un cas de figure qui reste encore à inventer :-). Y a-t-il des
objections ?
Pour finir là-dessus : quand je refuse l'accès, je renvoie null, ce qui est
d'usage pour la méthode Act en cas d'insuccès. Figurez-vous que lorsque je
lance null, j'ai retrouvé notre bonne vieille sdx/admin/admin/admin... Ca ne
plante pas le serveur, mais ça met un certain temps à se résoudre (URL trop
longue sans doute) et ça rend l'utilisation impossible, ce qui explique
pourquoi je n'ai pas fait de commit.
Qu'est-ce qui se passe dans la sitemap ? Est-ce qu'on n'est pas face à un
bug Cocoon ?
Voilou. Plein d'autres choses à dire sur d'autres sujets... chaque chose en
son temps :-)
A+
p.b.
- [sdx-developers] SecurityAction,
Pierrick Brihaye <=