Pregunta

¿Cómo puedo obtener el encabezado del Referer en Struts2? ¿Ahora mismo estoy usando una clase ActionSupport y parece que no puedo obtener un objeto ServletActionContext o implementar la interfaz ServletRequestAware? (¿Dónde está ServletRequestAware en Struts2? ¿Qué tarro?)

Estoy intentando configurar una redirección automática al remitente de una página, almacenada en una variable de sesión. Cuando alguien solicita la autenticación OAuth, almaceno el remitente en sesión y luego los envío a Twitter. Cuando hacen clic en Permitir, Twitter los envía a mi URL de devolución de llamada de OAuth. Trabajo allí (persistir el token de acceso) y luego me gustaría enviarlos al remitente que he almacenado en su sesión.

Como estoy seguro de que se nota, soy muy nuevo en Struts. Pasé más de tres horas leyendo documentos de Java, buscando en Google y, por lo demás, tratando de evitar la ira contra mí en el noob cringe

¡Gracias!

¿Fue útil?

Solución

Se considera " uncool " para hacer referencia a elementos HTTP en acciones, pero se hace necesario, así que ...

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

implemente la interfaz, cree una variable miembro HttpServletRequest y luego establezca su variable miembro en la solicitud en el setter implementado arriba. Ahora tiene la solicitud y puede hacer su request.getHeader (" referer ") .

Algunas personas también usan el método estático org.apache.struts2.ServletActionContext.getRequest () para obtener la solicitud. Se considera mala forma porque puede hacer que las pruebas unitarias sean más difíciles, pero las veo todo el tiempo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top