J'utilise actuellement shiro et le plug-in de sécurité de tapestry pour gérer les sessions natives et conserver les données. Tout fonctionne bien lors de l'obtention de la session par SecurityUtils.getSubject().getSession()
. Cependant, cela signifie que l'application est parsemée de fragments de code spécifique à Shiro. Puisque shiro utilise l'API de session de servlet, y a-t-il un moyen de le faire d'une manière qui soit transparente pour l'application, et j'espère quand même pouvoir utiliser des annotations comme @Persist
et @SessionState
?Modification du comportement de session par défaut dans la tapisserie
Répondre
J'ai décoré le TapestrySessionFactory pour renvoyer une session shiro au lieu du HttpServletSession encapsulé. Les interfaces n'étant pas identiques, une fonction de coercition (très) simple était nécessaire. J'ai exactement ce dont j'avais besoin: le seul code lié à shiro consiste en quelques lignes dans AppModule et une fonction isolée convertissant org.apache.shiro.session.Session en org.apache.tapestry5.services.Session. Dans le reste de l'application, j'utilise les installations de session comme précédemment (y compris les annotations), et ils sont tous gérés par shiro dans les coulisses.
j'ai mal compris votre question, mais vous pouvez injecter la demande et l'utiliser pour obtenir une poignée sur la session:
@Inject
private HttpServletRequest httpRequest;
httpRequest.getSession();
Cela ne vous empêche pas d'utiliser @Persist
ou @SessionState
.
- 1. Modification du comportement par défaut de NullValue dans un DataSet
- 2. Modification du comportement rollbackFor par défaut pour toute exception
- 3. tapisserie 5 session bean
- 4. Utiliser l'ID de session du paramètre fourni au lieu du comportement par défaut dans ASP.NET MVC3
- 5. Modification du comportement de vue dans Codeigniter
- 6. Modification de la conjonction par défaut SOLR
- 7. EXTJS Modification du comportement par défaut de la sélection de ligne GridPanel
- 8. Modification du comportement par défaut de l'emplacement d'enregistrement des fichiers dans les fenêtres
- 9. Surpassement du comportement par défaut sur longClick()
- 10. Modification du comportement par défaut "generate field stub ..." dans Visual Studio
- 11. Modification du comportement de TStringStream.ReadString dans D2009?
- 12. Modification du comportement de la touche d'accueil dans une session R dans emacs
- 13. wcftestclient.exe - Modification de la configuration par défaut
- 14. Redéfinition du comportement de l'onglet par défaut dans Python Tkinter
- 15. Modification des fonctions par défaut: Modification de la couleur par défaut de la fonction plot dans kernlab dans R
- 16. Modification du curseur par défaut JQ UI
- 17. Modification du nom de paramètre par défaut du routage
- 18. Modification du terminal par défaut dans les blocs de code
- 19. Modification du style de texte par défaut dans le storyboard?
- 20. Modification du délai d'attente de session par défaut d'une application Web Spring
- 21. Modification du type de sauvegarde par défaut du projet CS5.5
- 22. Modification de la police JLabel par défaut
- 23. Délai de session par défaut dans JSF
- 24. Modification de TestRunner par défaut dans Eclipse
- 25. wpf combobox comportement par défaut
- 26. Redéfinition du comportement des touches par défaut dans un TextBox
- 27. gedit sauvegarde automatique de session ou session par défaut?
- 28. libiconv - iconv_open() comportement par défaut?
- 29. Modification du résultat modal par défaut d'un formulaire.showModal
- 30. Prévention du comportement par défaut du bouton mobile jQuery
Mon problème était que je ne voulais pas du tout utiliser les servlets httpSessions. Je l'ai résolu maintenant, merci. –