Как я могу получить HTTPServletRequest в моей весенней фасоли?

голоса
28

Я разрабатываю приложение с Flex на основе переднего конца и Spring / Hibernate фоновым.

Для того, чтобы получить интеграцию Facebook работает так, как я получил его в настоящее время, мне нужно прочитать куки, установленные в JavaScript на переднем конце на задней конец и сделать некоторые проверки при входе в систему, чтобы увидеть ли пользователь пытается подменить его Facebook авторизоваться.

Это было бы довольно легко, но я не могу понять, как получить HTTPServletRequest. Я использую довольно основной Spring конфигурацию (это мое первое настоящую весну приложение, и теперь я довольно хорошо знаком с ним, но есть много к нему я никогда не смотрел на.)

Я не использую Spring MVC или Spring WebFlow или что-нибудь подобное. Я могу получить ServletContext, но я до сих пор не понял, как получить запрос.

Любая помощь?

Задан 18/02/2009 в 00:13
источник пользователем
На других языках...                            


5 ответов

голоса
11

Это своего рода Flex / BlazeDS конкретного, но вот решение, которое я придумал. Извините, если ответ на мой собственный вопрос является бестактностью.

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

Он работает, я получаю печенье. Моя проблема была надеется Весна - BlazeDS было. Весна, вероятно, делает тоже самое, но я до сих пор не знаю, как добраться до него.

Ответил 18/02/2009 в 00:40
источник пользователем

голоса
75

Если FlexContext нет в наличии:

Решение 1: внутри метода (> = 2.0 Пружина требуется)

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder

        .getRequestAttributes()).getRequest();

Решение 2: внутри боба (вероятно Spring 3.0 для singelton бобов требуется!)

@Autowired

private HttpServletRequest request;
Ответил 25/11/2009 в 11:13
источник пользователем

голоса
1

@ContextАннотацию (см ответы на этот вопрос: Что контекст аннотацию делать весной? ) Заставит его вводить для вас.

Я должен был использовать

@Context
private HttpServletRequest request;
Ответил 07/02/2016 в 12:36
источник пользователем

голоса
2

@ Ответ eeezyy не работал для меня, хотя я использую Spring Ботинки (2.0.4) и может отличаться, но вариант здесь в 2018 году работает следующим образом:

@Autowired
private HttpServletRequest request;
Ответил 07/11/2018 в 16:01
источник пользователем

голоса
0

это должно сделать это

((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getRequestURI();
Ответил 17/06/2019 в 22:21
источник пользователем

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