Comment intégrer la Sécurité Printemps et Struts2
J'ai fait des tonnes de recherches sur google à propos de ce problème, et jusqu'à maintenant, je ne pouvais pas trouver un tutoriel qui concerne l'intégration des Struts2 et de la Sécurité Printemps.
Ma question est que Comment pourrais-je intégrer le Printemps de Sécurité et de Struts2?
Où j'ai besoin de certaines actions ou des pages restreint, comme la page admin/url doit être accessible uniquement par un administrateur et d'autres choses comme ça si un utilisateur essaie d'accéder à cette page il ou elle serait redirigé vers une autre page.
Et avec exactement ce que vous rencontrez des problèmes?
Je n'ai pas la moindre idée par où commencer, un exemple simple de la terre serait de le faire.
Il suffit de suivre quelques printemps-sécurité tutoriel/exemple.
ne serait-il pas un changement de Struts2 classes d'Action? ou struts2.xml? aurais-je vraiment mettre un security.xml?
Je n'ai pas la moindre idée par où commencer, un exemple simple de la terre serait de le faire.
Il suffit de suivre quelques printemps-sécurité tutoriel/exemple.
ne serait-il pas un changement de Struts2 classes d'Action? ou struts2.xml? aurais-je vraiment mettre un security.xml?
OriginalL'auteur user962206 | 2013-01-15
Vous devez vous connecter pour publier un commentaire.
Disons que vous avez besoin pour sécuriser ce qui est accessible sur le
/admin/*
chemin. Vous devez déclarer le Printemps Filtre de Sécurité dans votreweb.xml
, les jambes de suspension filtre doit venir après, de sorte que si vous accédez à/admin
il sera le Printemps de Sécurité que le traitement de la demande de première et sera en mesure de le laisser passer ou bloquer en fonction du rôle de l'utilisateur:Vous déclarer votre printemps contexte de sécurité:
Je vous propose d'utiliser le
struts2-convention
plugin de sorte que les Url comme/login
sont liés automatiquement à une classe nommée disonscom.foo.bar.actions.LoginAction
. De même pourLogoutAction
Maintenant ce qui est sous
/admin/*
devrait être assurée par la Sécurité Printemps, et le reste devrait être transmises directement à la Struts2 filtre.Enfin, dans votre JSP, vous pouvez vérifier si quelqu'un est un Admin avec:
Le reste peut être trouvé dans tous les Printemps de Sécurité tutoriel. Ce qui est vraiment important, c'est l'ordre des filtres de la déclaration, le printemps de sécurité doit être la première.
Edit: d'une recherche sur google, il y a aussi ce lien qui peut être de l'aide pour vous.
Si vous avez besoin de le faire en Java de la classe d'action vous pouvez le vérifier avec
SecurityContextHolderAwareRequestWrapper.isUserInRole("ROLE_ADMIN")
existe-il des tutoriels sur les annotations? spécifiquement pour struts2?
il y a un plugin nommé
struts2-annotation
: struts.apache.org/2.2.1/docs/struts-2-annotations.html et aussi pour le printemps de sécurité comme@PreAuthorize
etc static.springsource.org/spring-security/site/docs/3.0.x/...si je télécharge la struts2-annotation-il automatiquement que @exiger une autorisation préalable?
OriginalL'auteur Alex
C'est en fait très simple - le Printemps de Sécurité est framework web agnostique 🙂
Vous devez définir le Printemps filtre de Sécurité de la chaîne - c'est une Java Filtre qui doit être mappé à toutes les demandes. Le filtre permet de vérifier si le chemin d'accès nécessite tout privilages et si oui, vérifie si l'utilisateur est connecté et a ceux privilages.
Simple exemple de configuration.
web.xml (insérer à votre existant, aux côtés de struts-config):
Printemps configuration de la sécurité (dans le fichier mentionné à l'web.xml dans contextConfigLocation paramètre):
Vous pouvez étendre ce que vous souhaitez - Le printemps de la documentation est plutôt bien écrit
Vous pouvez aller encore plus simples d'auto-configuration:
Au-dessus des options secure web-app pour demander le chemin d'accès. Vous pouvez sécuriser les actions. L'ajout de la ci-dessous devraient vous permettre de continuer:
Laissez-moi savoir quelles sont les caractéristiques dont vous avez besoin et je peux vous diriger dans une direction. Gardez à l'esprit que l'espace de noms config n'est pas une balle d'argent - si vous avez besoin d'une solution personnalisée vous pourriez avoir besoin de configurer tous les beans spring vous-même, mais la documentation explique cette bien.
le printemps doc lien cassé
Merci pour le conseil, la mise à jour maintenant. Ils ont migré de la documentation. Le lien fonctionne maintenant.
OriginalL'auteur theadam