2013-04-19 14 views
5

Sto usando CXF per creare codice client per un servizio REST JAX-RS. Sfortunatamente, questo servizio REST si basa sui cookie per autenticare ogni richiesta e mantenere lo stato della sessione chiave. L'accesso alle informazioni sull'account dell'utente comporta due richieste: una per accedere e una per ottenere informazioni sull'account. I cookie di sessione recuperati nella prima richiesta devono essere inviati con la seconda richiesta.CXF Il client JAX-RS non mantiene i cookie

Ecco il mio codice.

// Login (POST /sessions) 
Response response = proxy.login(userCredentials); 
assertEquals(200, response.getStatus()); 

// Get user's account info (GET /user) 
response = proxy.getUser(); 
User user = response.readEntity(User.class); 

La seconda richiesta di autenticazione fallisce perché non include i cookies di sessione richieste che sono stati restituiti dall'operazione di accesso precedente.

Credo che ci sia un modo per configurare il WebClient per mantenere i cookie tra le richieste. Ho cercato in alto e in basso, ma non riesco a scoprire come. Spero che qualcuno possa indicarmi un esempio. Grazie in anticipo!

risposta

7

Ho finalmente trovato una soluzione. Ho dovuto fare quanto segue prima di usare il proxy.

WebClient.getConfig(proxy).getRequestContext().put(
     org.apache.cxf.message.Message.MAINTAIN_SESSION, Boolean.TRUE); 
Problemi correlati