J'ai une action struts2 avec un @Secured({"ROLE_ADMIN"})
pour sécuriser la méthode d'exécution. Dans la méthode execute j'attribue un message à une variable membre de l'action, puis renvoie SUCCESS et finit sur la page jsp. Sur la page, je récupère la variable membre actions avec <sproperty>
.Ressort de sécurité et Struts 2
private String greeting;
public String execute() throws Exception {
this.greeting="Hello";
return SUCCESS;
}
// getters and setters for greeting
...
<s:property value="greeting" />
Le problème est lorsque l'annotation est sécurisée présente l'jsp ne montre rien pour la variable membre mais quand on enlève @Secured
la chose se comporte correctement et affiche le message qui a été mis dans la variable membre.
Il semble que la sécurité réelle fonctionne bien, mais lorsqu'elle est activée via l'annotation, la variable membre (ou peut-être l'instance de l'action) ne fait pas son chemin sur la pile de valeurs.
Je ne peux pas voir les messages d'erreur.
Je n'ai pas utilisé Spring Security avec une application S2, mais la balise de propriété appellera 'getGreeting()', est-il possible que cela soit aussi annoté? Si oui, pourrait vouloir considérer 'ModelDriven'. –