<<PACKAGE>> import java.util.List; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.NewCookie; import org.odata4j.consumer.ODataClientRequest; import org.odata4j.jersey.consumer.ODataJerseyConsumer; import org.odata4j.jersey.consumer.behaviors.JerseyClientBehavior; import org.odata4j.repack.org.apache.commons.codec.binary.Base64; import com.sun.jersey.api.client.ClientHandlerException; import com.sun.jersey.api.client.ClientRequest; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.config.ClientConfig; import com.sun.jersey.api.client.filter.ClientFilter; import com.sun.jersey.api.client.filter.Filterable; public class <<NSNAME>> extends ODataConnectivity { public <<NSNAME>>() { super("<<URL>>", "<<USER>>", "<<PASSWORD>>", "<<HOST>>", "<<PORT>>"); myJerseyBehavior jcb = new myJerseyBehavior(_USER, _PASSWORD); rooODataConsumer = ODataJerseyConsumer.newBuilder(_ODATA_END_POINT).setClientBehaviors(jcb).build(); } private static class myJerseyBehavior implements JerseyClientBehavior { private String xsrfCookieName; private String xsrfCookieValue; private String xsrfTokenValue; private String _USER; private String _PASSWORD; myJerseyBehavior(String _USER, String _PASSWORD) { this._USER = _USER; this._PASSWORD = _PASSWORD; } @Override public ODataClientRequest transform(ODataClientRequest request) { String userPassword = _USER + ":" + _PASSWORD; String encoded = Base64.encodeBase64String(userPassword.getBytes()); encoded = encoded.replaceAll("\r\n?", ""); if (request.getMethod().equals("GET")){ request = request <<CSRF_MODE_GET>> .header("Authorization", "Basic " + encoded); return request; }else { request = request <<CSRF_MODE_SET>> .header("Authorization", "Basic " + encoded); return request; } } @Override public void modifyWebResourceFilters(Filterable arg0) { // TODO Auto-generated method stub } @Override public void modifyClientFilters(Filterable client) { client.addFilter(new ClientFilter(){ @Override public ClientResponse handle(ClientRequest clientRequest) throws ClientHandlerException { ClientResponse response = getNext().handle(clientRequest); List<NewCookie> cookies = response.getCookies(); for (NewCookie cookie:cookies) { if (cookie.getName().startsWith("sap-XSRF")) { xsrfCookieName = cookie.getName(); xsrfCookieValue = cookie.getValue(); break; } // lastResponse += "\n" + cookie.getName() + " -----> " + cookie.getValue(); } MultivaluedMap<String, String> responseHeaders = response.getHeaders(); xsrfTokenValue = responseHeaders.getFirst("X-CSRF-Token"); return response; }}); } @Override public void modify(ClientConfig arg0) { // TODO Auto-generated method stub } } }