Come faccio ad avere un HttpServletRequest nei miei fagioli di primavera?

voti
28

Sto sviluppando un app con un front-end Flex-based e un Primavera / Hibernate back-end.

Per ottenere l'integrazione di Facebook a lavorare nel modo che ho attualmente, ho bisogno di leggere i cookie impostati in javascript sul front-end sul back-end e fare un po 'di convalida durante il login per vedere se l'utente sta cercando di falsificare il suo Facebook accesso.

Questo sarebbe abbastanza facile, ma io non riesco a capire come ottenere il HttpServletRequest. Io sto usando un config piuttosto semplice primavera (questa è la mia prima applicazione vera primavera, e sono abbastanza familiarità con esso ora, ma c'è molto da esso non ho mai guardato.)

Non sto usando Spring MVC o primavera WebFlow o qualcosa di simile. Posso ottenere la ServletContext, ma non ho ancora capito come ottenere la richiesta.

Qualsiasi aiuto?

È pubblicato 18/02/2009 alle 00:13
fonte dall'utente
In altre lingue...                            


5 risposte

voti
11

Questa è una specie di Flex / BlazeDS specifica, ma qui è la soluzione che è venuta in mente. Scusate se rispondendo alla mia domanda è un passo falso.

    HttpServletRequest request = flex.messaging.FlexContext.getHttpRequest();

    Cookie[] cookies = request.getCookies();

    for (Cookie c:cookies)
    {
        log.debug(String.format("Cookie: %s, %s, domain: %s",c.getName(), c.getValue(),c.getDomain()));
    }

Funziona, ricevo i biscotti. Il mio problema era alla ricerca di primavera - BlazeDS avevano. Primavera, probabilmente non troppo, ma io ancora non so come arrivare ad esso.

Risposto il 18/02/2009 a 00:40
fonte dall'utente

voti
75

Se FlexContext non è disponibile:

Soluzione 1: metodo all'interno (> = 2.0 Primavera richiesto)

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder

        .getRequestAttributes()).getRequest();

Soluzione 2: all'interno di fagioli (probabilmente Primavera 3.0 per i fagioli singelton richieste!)

@Autowired

private HttpServletRequest request;
Risposto il 25/11/2009 a 11:13
fonte dall'utente

voti
1

L' @Contextannotazione (vedi le risposte in questa domanda: cosa fa contesto annotazione fare primavera? ) Farà sì che da iniettare per voi.

Ho dovuto usare

@Context
private HttpServletRequest request;
Risposto il 07/02/2016 a 12:36
fonte dall'utente

voti
2

@ Risposta di eeezyy non ha funzionato per me, anche se sto usando Primavera Boot (2.0.4) e può essere diverso, ma una variazione qui nel 2018 funziona così:

@Autowired
private HttpServletRequest request;
Risposto il 07/11/2018 a 16:01
fonte dall'utente

voti
0

questo dovrebbe farlo

((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getRequestURI();
Risposto il 17/06/2019 a 22:21
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more