package com.xiaomi.infra.galaxy.fds.android.auth;
import org.apache.http.client.methods.HttpRequestBase;
import com.xiaomi.infra.galaxy.fds.android.model.HttpHeaders;
import com.xiaomi.infra.galaxy.fds.android.util.Args;
public class SSOCredential implements GalaxyFDSCredential {
private final String HEADER_VALUE = "SSO";
private final String SERVICE_TOKEN_PARAM = "serviceToken";
private final String APP_ID = "appId";
private final String serviceToken;
private final String appId;
@Deprecated
public SSOCredential(String serviceToken) {
Args.notNull(serviceToken, "Service token");
Args.notEmpty(serviceToken, "Service token");
this.serviceToken = serviceToken;
this.appId = null;
}
public SSOCredential(String serviceToken, String appId) {
Args.notNull(serviceToken, "Service token");
Args.notEmpty(serviceToken, "Service token");
Args.notNull(appId, "App id");
Args.notEmpty(appId, "App id");
this.serviceToken = serviceToken;
this.appId = appId;
}
@Override
public void addHeader(HttpRequestBase request) {
request.addHeader(HttpHeaders.AUTHORIZATION, HEADER_VALUE);
}
@Override
public String addParam(String uri) {
StringBuilder builder = new StringBuilder(uri);
if (uri.indexOf('?') == -1) {
builder.append('?');
} else {
builder.append('&');
}
builder.append(SERVICE_TOKEN_PARAM);
builder.append('=');
builder.append(serviceToken);
if (appId != null) {
builder.append('&');
builder.append(APP_ID);
builder.append('=');
builder.append(appId);
}
return builder.toString();
}
}