IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Gestion des headers HTTP [Integration]


Sujet :

Spring Java

  1. #1
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut Gestion des headers HTTP
    Bonjour à tous,

    je suis actuellement en train de développer un client qui doit se connecter à un service implémenté avec Spring Remoting. Ce service utilise un transport http (Hessian ou Burlap, je ne sais pas encore) et je dois trouver une manière d'ajouter un cookie à la requête http envoyée par spring remoting (pour la petite histoire, il s'agit d'un cookie d'authentification que le service auquel je me connecte devra propager vers d'autres services d'entreprise).

    J'ai fait quelques recherches mais je ne trouve pas grand chose qui corresponde à mes besoins... Y'a-t-il un moyen quelconque d'intercepter la requête envoyée par spring remoting afin de l'enrichir?

    Merci d'avance

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    J'y suis arrivé... C'était facile finalement (avec HttpClient)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="
    		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
     
    	<bean id="titi" class="Titi" />
     
    	<bean id="httpInvokerProxy" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
    		<property name="serviceUrl" value="http://myurl/..." />
    		<property name="serviceInterface" value="MyInterface" />
     
    		<property name="httpInvokerRequestExecutor">
    			<ref bean="titi" />
    		</property>
    	</bean>
     
    </beans>
    Titi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    import java.io.IOException;
     
    import org.apache.commons.httpclient.Header;
    import org.apache.commons.httpclient.cookie.CookiePolicy;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor;
    import org.springframework.remoting.httpinvoker.HttpInvokerClientConfiguration;
     
    public class Titi extends CommonsHttpInvokerRequestExecutor {
    	private final ThreadLocal<String> threadLocal = new ThreadLocal<String>();
     
    	// private Object threadLocalLock = new Object();
    	@Override
    	protected PostMethod createPostMethod(
    			final HttpInvokerClientConfiguration config) throws IOException {
     
    		final String ppauth = threadLocal.get();
    		if (ppauth == null) {
    			throw new RuntimeException(
    					"No authentification cookie found for this query!");
    		}
     
    		final PostMethod post = super.createPostMethod(config);
    		post.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);
    		post.setRequestHeader(new Header("Cookie", "ppauth=" + ppauth));
    		return post;
    	}
     
    	public void setPPAuthCookie(final String cookie) {
    		threadLocal.set(cookie);
    	}
    }
    et voili, j'aime qu'un plan se déroule sans accroc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des headers avec % dans une proc template
    Par jetli0105 dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 26/08/2011, 09h45
  2. [GWT2] Récupération des headers HTTP
    Par prez dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 20/09/2010, 10h42
  3. Réponses: 4
    Dernier message: 09/07/2008, 16h49
  4. Comment passer des headers http ?
    Par Loko dans le forum Oracle
    Réponses: 5
    Dernier message: 15/11/2006, 09h19
  5. Gestion des headers dans un Makefile
    Par Weren dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 09/11/2004, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo