Jak mogę uzyskać HttpServletRequest w moich wiosennych fasoli?

głosy
28

Zajmuję się tworzeniem aplikacji z przodu Flex-a opartego Wiosna / Hibernate back-end.

Aby uzyskać integracji Facebook pracy w sposób mam ją obecnie, muszę przeczytać cookies utworzone w javascript na przednim końcu na back-end i zrobić walidacji podczas logowania, aby zobaczyć, czy użytkownik próbuje sfałszować jego Facebooka Zaloguj Się.

Byłoby to całkiem proste, ale nie mogę dowiedzieć się, jak uzyskać HttpServletRequest. Używam dość podstawowe Wiosna config (to moja pierwsza prawdziwa wiosna app i jestem dość zaznajomieni z nim teraz, ale nie ma wiele do niego nigdy nie oglądali.)

Nie używam MVC wiosny lub wiosną Webflow lub coś podobnego. Mogę ServletContext, ale jeszcze nie zorientowali się, jak dostać się do prośby.

Jakaś pomoc?

Utwórz 18/02/2009 o 00:13
źródło użytkownik
W innych językach...                            


5 odpowiedzi

głosy
11

Jest to rodzaj Flex / BlazeDS konkretnego, ale tutaj jest rozwiązanie mam wymyślić. Przepraszam, jeśli odpowiadając na moje własne pytanie jest 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 działa, mam cookies. Mój problem został patrząc na wiosnę - BlazeDS miał. Wiosna prawdopodobnie nie zbyt, ale nadal nie wiem, jak się do niego dostać.

Odpowiedział 18/02/2009 o 00:40
źródło użytkownik

głosy
75

Jeśli FlexContext nie jest dostępny:

Roztwór 1: W metodzie (> = 2,0 Wiosna wymagane)

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder

        .getRequestAttributes()).getRequest();

Rozwiązanie 2: wewnątrz fasoli (prawdopodobnie Wiosna 3.0 dla Singelton fasoli wymagane!)

@Autowired

private HttpServletRequest request;
Odpowiedział 25/11/2009 o 11:13
źródło użytkownik

głosy
1

@ContextAdnotacji (patrz odpowiedź na to pytanie: Co zrobić kontekst adnotacji na wiosnę? ) Spowoduje to być wstrzykiwany do ciebie.

Musiałem użyć

@Context
private HttpServletRequest request;
Odpowiedział 07/02/2016 o 12:36
źródło użytkownik

głosy
2

@ Odpowiedź eeezyy za nie działa dla mnie, chociaż używam Wiosna rozruchowym (2.0.4) i może się różnić, ale odmiana tutaj w 2018 roku działa w następujący sposób:

@Autowired
private HttpServletRequest request;
Odpowiedział 07/11/2018 o 16:01
źródło użytkownik

głosy
0

to powinno wystarczyć

((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getRequestURI();
Odpowiedział 17/06/2019 o 22:21
źródło użytkownik

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