sdx-developers
[Top][All Lists]
Advanced

[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.













reply via email to

[Prev in Thread] Current Thread [Next in Thread]