2013-04-19 45 views
5

Tôi đang sử dụng CXF để xây dựng mã máy khách cho dịch vụ REST JAX-RS. Dịch vụ REST này không may dựa vào cookie để xác thực từng yêu cầu và duy trì trạng thái phiên khóa chính khác. Truy cập thông tin tài khoản của người dùng bao gồm hai yêu cầu: một yêu cầu để đăng nhập và một yêu cầu để nhận thông tin tài khoản. Cookie phiên được truy xuất trong yêu cầu đầu tiên phải được gửi cùng với yêu cầu thứ hai.Proxy máy khách CXF JAX-RS không duy trì cookie

Đây là mã của tôi.

// 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); 

Yêu cầu thứ hai không xác thực vì nó không bao gồm các cookie phiên cần được trả về bởi các hoạt động đăng nhập trước.

Tôi tin rằng có một cách để định cấu hình WebClient để duy trì cookie theo yêu cầu. Tôi đã tìm kiếm cao và thấp, nhưng tôi dường như không thể tìm ra cách. Tôi hy vọng ai đó có thể chỉ cho tôi một ví dụ. Cảm ơn trước!

Trả lời

7

Cuối cùng tôi đã tìm được giải pháp. Tôi phải làm như sau trước khi sử dụng proxy.

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