Вопрос:

Как получить HttpServletRequest в моих весенних бобах?

java flex spring facebook

80117 просмотра

4 ответа

831 Репутация автора

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

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

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

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

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

Автор: Jason Maskell Источник Размещён: 17.02.2009 11:13

Ответы (4)


11 плюса

831 Репутация автора

Это своего рода Flex / BlazeDS, но вот решение, которое я придумал. Извините, если отвечать на мой собственный вопрос - это 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()));
    }

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

Автор: Jason Maskell Размещён: 17.02.2009 11:40

84 плюса

1000 Репутация автора

Решение

Если FlexContext недоступен:

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

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder

        .getRequestAttributes()).getRequest();

Решение 2: внутри bean-компонента (поддерживается> = 2.5, Spring 3.0 для синглтон-бобов требуется!)

@Autowired

private HttpServletRequest request;
Автор: Gerrit Brehmer Размещён: 25.11.2009 10:13

1 плюс

1494 Репутация автора

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

Мне пришлось использовать

@Context
private HttpServletRequest request;
Автор: eeezyy Размещён: 07.02.2016 12:36

0 плюса

3192 Репутация автора

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

@Autowired
private HttpServletRequest request;
Автор: chrismacp Размещён: 07.11.2018 04:01
Вопросы из категории :
32x32