Comment puis-je obtenir un HttpServletRequest dans mes grains de printemps?

voix
28

Je développe une application avec une extrémité avant basée sur Flex et un back-end Spring / Hibernate.

Pour obtenir l'intégration de Facebook travailler dans la façon dont je l'ai actuellement, je dois lire les cookies javascript sur l'extrémité avant sur le back-end et faire une validation lors de la connexion pour voir si l'utilisateur tente d'usurper son Facebook s'identifier.

Ce serait assez facile, mais je ne peux pas comprendre comment obtenir le HttpServletRequest. J'utilise une configuration Spring assez basique (ce qui est ma première application de printemps réel, et je suis assez familier avec elle maintenant, mais il y a beaucoup à ce que j'ai jamais regardé.)

Je ne suis pas en utilisant Spring MVC ou Spring WebFlow ou quelque chose comme ça. Je peux obtenir le ServletContext, mais je ne l'ai pas encore compris comment obtenir la demande.

De l'aide?

Créé 18/02/2009 à 00:13
source utilisateur
Dans d'autres langues...                            


5 réponses

voix
11

Ce genre est de Flex / BlazeDS spécifique, mais voici la solution que je suis venu avec. Désolé si répondre à ma propre question est un 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()));
    }

Il fonctionne, je reçois les cookies. Mon problème était à la recherche de printemps - BlazeDS avait. Le printemps fait probablement aussi, mais je ne sais pas encore comment se rendre à lui.

Créé 18/02/2009 à 00:40
source utilisateur

voix
75

Si FlexContext ne sont pas disponibles:

Solution 1: Procédé intérieur (> = 2.0 Spring nécessaire)

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder

        .getRequestAttributes()).getRequest();

Solution 2: à l'intérieur de haricots (probablement Spring 3.0 pour les haricots Singelton nécessaires!)

@Autowired

private HttpServletRequest request;
Créé 25/11/2009 à 11:13
source utilisateur

voix
1

L' @Contextannotation (voir les réponses à cette question: Qu'est-ce que l' annotation contexte ne au printemps? ) Le fera à injecter pour vous.

Je devais utiliser

@Context
private HttpServletRequest request;
Créé 07/02/2016 à 12:36
source utilisateur

voix
2

@ La réponse de eeezyy ne fonctionnait pas pour moi, même si je suis avec Spring Boot (2.0.4) et il peut varier, mais une variation ici en 2018 fonctionne ainsi:

@Autowired
private HttpServletRequest request;
Créé 07/11/2018 à 16:01
source utilisateur

voix
0

cela devrait le faire

((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getRequestURI();
Créé 17/06/2019 à 22:21
source utilisateur

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