Wie erhalte ich eine HttpServletRequest in meinem Frühjahr Bohnen?

stimmen
28

Ich entwickle eine Anwendung mit einem Flex-basierten Frontend und ein Frühjahr / Hibernate-Back-End.

Um die Integration Facebook arbeiten in der Art, wie ich es zur Zeit habe, muss ich die Cookies in Javascript auf dem vorderen Ende auf dem Back-End und einige Validierung bei der Anmeldung festgelegt lesen, um zu sehen, ob der Benutzer seine Facebook zu fälschen versucht, Anmeldung.

Das wäre ziemlich einfach, aber ich kann nicht herausfinden, wie die HttpServletRequest zu bekommen. Ich bin mit einem ziemlich einfachen Spring config (das ist mein erster echter Frühling App ist, und ich bin ziemlich vertraut mit ihm jetzt, aber es gibt viel, um es Ich habe an nie sehe.)

Ich bin nicht mit Spring MVC oder Frühling WebFlow oder so etwas. Ich kann die ServletContext bekommen, aber ich habe noch nicht herausgefunden, wie die Anfrage zu bekommen.

Irgendeine Hilfe?

Veröffentlicht am 18/02/2009 um 00:13
quelle vom benutzer
In anderen Sprachen...                            


5 antworten

stimmen
11

Dies ist eine Art von Flex / BlazeDS spezifisch, aber hier ist die Lösung, die ich habe kommen mit. Sorry, wenn meine eigene Frage zu beantworten ist ein Fauxpas.

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

Es funktioniert, ich die Kekse bekommen. Mein Problem Frühling war auf der Suche - BlazeDS hatte. Frühling wahrscheinlich tut das auch, aber ich immer noch nicht weiß, wie man es bekommen.

Beantwortet am 18/02/2009 um 00:40
quelle vom benutzer

stimmen
75

Wenn FlexContext nicht verfügbar ist:

Lösung 1: innen-Methode (> = Feder 2.0 erforderlich)

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder

        .getRequestAttributes()).getRequest();

Lösung 2: innen Bohne (Frühjahr wahrscheinlich 3.0 für Singelton Bohnen erforderlich!)

@Autowired

private HttpServletRequest request;
Beantwortet am 25/11/2009 um 11:13
quelle vom benutzer

stimmen
1

Die @ContextAnmerkung (siehe Antworten auf diese Frage: Was Anmerkung im Frühjahr nicht Kontext tun? ) Führt dazu , dass es für Sie injiziert werden.

Ich hatte zu verwenden

@Context
private HttpServletRequest request;
Beantwortet am 07/02/2016 um 12:36
quelle vom benutzer

stimmen
2

@ Eeezyy Antwort funktionierte nicht für mich, obwohl ich Frühling Stiefel bin mit (2.0.4) und es kann sich unterscheiden, aber eine Variation hier im Jahr 2018 arbeitet so:

@Autowired
private HttpServletRequest request;
Beantwortet am 07/11/2018 um 16:01
quelle vom benutzer

stimmen
0

dies sollte es tun

((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getRequestURI();
Beantwortet am 17/06/2019 um 22:21
quelle vom benutzer

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