package it.geosolutions.geocollect.android.core.login.utils; import org.apache.http.HttpHeaders; import retrofit.RequestInterceptor; import android.util.Base64; /** * class to intercept the retrofit login PUT request with the user credentials * @author Robert Oehler * */ public class LoginRequestInterceptor implements RequestInterceptor { private String mUser; private String mPass; public LoginRequestInterceptor(final String pUser,final String pPass){ this.mUser = pUser; this.mPass = pPass; } @Override public void intercept(RequestFacade requestFacade) { requestFacade.addHeader(HttpHeaders.ACCEPT, "application/json;"); if (mUser != null && mPass != null) { final String authorizationValue = getB64Auth(mUser, mPass); requestFacade.addHeader(HttpHeaders.AUTHORIZATION, authorizationValue); }else{ throw new IllegalArgumentException("no password or user available to intercept"); } } public static String getB64Auth( String login, String pass ) { String source = login + ":" + pass; String ret = "Basic " + Base64.encodeToString(source.getBytes(), Base64.URL_SAFE | Base64.NO_WRAP); return ret; } }