복붙노트

[SPRING] Spring bean에서 HttpServletRequest를 얻으려면 어떻게해야합니까?

SPRING

Spring bean에서 HttpServletRequest를 얻으려면 어떻게해야합니까?

Flex 기반의 프런트 엔드와 Spring / Hibernate 백엔드를 사용하여 앱을 개발하고 있습니다.

내가 현재 가지고있는 방식으로 페이스 북 통합을 작동 시키려면 백엔드의 프론트 엔드에있는 자바 스크립트에 설정된 쿠키를 읽고 로그인 중에 사용자가 페이스 북을 속일려고하는지 확인해야한다. 로그인.

이것은 매우 쉽지만 HttpServletRequest를 얻는 방법을 알 수는 없습니다. 나는 꽤 기본적인 Spring 설정을 사용하고있다. (이것은 나의 첫 번째 진짜 Spring 애플 리케이션이며, 지금은 꽤 친숙하다. 그러나 나는 결코 보지 못했다.)

나는 Spring MVC 나 Spring WebFlow를 사용하지 않는다. ServletContext를 얻을 수는 있지만 아직 요청을 얻는 방법을 찾지 못했습니다.

어떤 도움이 필요합니까?

해결법

  1. ==============================

    1.FlexContext를 사용할 수없는 경우 :

    FlexContext를 사용할 수없는 경우 :

    해결책 1 : 내부 메소드 (> = Spring 2.0 필요)

    HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
    
            .getRequestAttributes()).getRequest();
    

    해결책 2 : 내부 빔 (싱글턴 빈에 대해> 2.5, 3.0을 지원!)

    @Autowired
    
    private HttpServletRequest request;
    
  2. ==============================

    2.이것은 Flex / BlazeDS와 비슷하지만, 여기에 나와있는 해결책이 있습니다. 미안 자신의 질문에 대답하면 가짜입니다.

    이것은 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는 그것을 가지고있었습니다. 봄은 아마 그렇지만 나는 아직도 그것에 도달하는 방법을 모른다.

  3. ==============================

    3.@Context 어노테이션 (이 문항의 해답을 참조하십시오 : Spring에서 컨텍스트 어노테이션은 무엇을합니까?)은 당신에게 주입되게 할 것입니다.

    @Context 어노테이션 (이 문항의 해답을 참조하십시오 : Spring에서 컨텍스트 어노테이션은 무엇을합니까?)은 당신에게 주입되게 할 것입니다.

    나는 사용했다.

    @Context
    private HttpServletRequest request;
    
  4. ==============================

    4.@ eeezyy의 대답은 스프링 부트 (2.0.4)를 사용하고 있지만 다를 수 있지만 2018 년의 변형은 다음과 같이 작동합니다.

    @ eeezyy의 대답은 스프링 부트 (2.0.4)를 사용하고 있지만 다를 수 있지만 2018 년의 변형은 다음과 같이 작동합니다.

    @Autowired
    private HttpServletRequest request;
    
  5. from https://stackoverflow.com/questions/559155/how-do-i-get-a-httpservletrequest-in-my-spring-beans by cc-by-sa and MIT license