Question

Comment puis-je obtenir l'en-tête Referer sous Struts2? Actuellement, j'utilise une classe ActionSupport et je n'arrive pas à obtenir un objet ServletActionContext ou à implémenter l'interface ServletRequestAware. (Où se trouve ServletRequestAware dans Struts2? Quel fichier jar?)

J'essaie de configurer une redirection automatique vers un référent de page, stockée dans une variable de session. Lorsque quelqu'un demande une authentification OAuth, je stocke le référant en session, puis je l'envoie à Twitter. Quand ils cliquent sur autoriser, twitter les envoie à mon URL de rappel OAuth. J'y travaille (jeton d'accès persistant) et souhaite ensuite les envoyer au référent que j'ai enregistré dans leur session.

Comme vous le savez sûrement, je suis très novice dans Struts. J'ai passé plus de trois heures à lire des documents Java, à googler et à essayer d'éviter la colère contre moi, le noob grincer des dents

Merci!

Était-ce utile?

La solution

Il est considéré comme "non refroidi". faire référence à des éléments HTTP dans des actions, mais cela devient alors nécessaire ....

org.apache.struts2.interceptor.
                         ServletRequestAware.setServletRequest(HttpServletRequest request);

implémentez l'interface, créez une variable membre HttpServletRequest , puis définissez votre variable membre sur la demande dans l'outil de définition mis en œuvre ci-dessus. Maintenant, vous avez la demande et vous pouvez faire votre request.getHeader ("referer") .

Certaines personnes utilisent également la méthode statique org.apache.struts2.ServletActionContext.getRequest () pour obtenir la demande. C'est considéré comme une mauvaise forme car cela peut rendre les tests unitaires plus difficiles, mais je le vois tout le temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top