Jak získám HttpServletRequest ve svých jarních fazolí?

hlasů
28

Jsem vyvíjet aplikace s Flex na bázi předního konce a jaro / hibernace back-end.

Chcete-li získat integraci Facebook pracuje na cestě Mám to v současné době, musím číst cookies nastavené v JavaScriptu na předním konci na back-end a udělat nějaké ověření při přihlašování, zda je uživatel pokouší podvést svého Facebook přihlásit se.

To by bylo docela snadné, ale nemohu přijít na to, jak se dostat HttpServletRequest. Já používám docela základní Spring config (toto je moje první opravdová Spring app, a jsem docela obeznámen s tím teď, ale je tu spousta do ní nikdy jsem se dívali na.)

Nejsem pomocí Spring MVC nebo pružinová houpadla WebFlow nebo něco podobného. Můžu ServletContext, ale ještě jsem přišel na to, jak se dostat žádost.

Nějaká pomoc?

Položena 18/02/2009 v 00:13
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
11

To je druh Flex / BlazeDS konkrétní, ale tady je řešení jsem přišel s. Omlouváme se, pokud odpověď na mou vlastní otázku je faux pas.

    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()));
    }

To funguje, mám cookies. Můj problém byl při pohledu na jaře - BlazeDS měl. Jaro nejspíš dělá taky, ale já stále nevím, jak se dostat k ní.

Odpovězeno 18/02/2009 v 00:40
zdroj uživatelem

hlasů
75

Pokud FlexContext není k dispozici:

Roztok 1: vnitřní metodou (> = Pružina 2.0 vyžadováno)

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder

        .getRequestAttributes()).getRequest();

Řešení 2: uvnitř bobů (asi jaro 3.0 singelton fazolí potřebné!)

@Autowired

private HttpServletRequest request;
Odpovězeno 25/11/2009 v 11:13
zdroj uživatelem

hlasů
1

@ContextAnotace (viz odpovědi na tuto otázku: Co kontext anotace dělat na jaře? ) Způsobí, že se vstřikuje pro vás.

Musel jsem použít

@Context
private HttpServletRequest request;
Odpovězeno 07/02/2016 v 12:36
zdroj uživatelem

hlasů
2

@ Odpověď eeezyy je nepracoval pro mě, i když jsem pomocí Spring Boot (2.0.4), a to se může lišit, ale variace zde v roce 2018 funguje takto:

@Autowired
private HttpServletRequest request;
Odpovězeno 07/11/2018 v 16:01
zdroj uživatelem

hlasů
0

to by mělo stačit

((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getRequestURI();
Odpovězeno 17/06/2019 v 22:21
zdroj uživatelem

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