package com.ibm.sbt.services.client.base;
import com.ibm.commons.util.StringUtil;
import com.ibm.sbt.services.endpoints.Endpoint;
public enum AuthType {
OAUTH10("oauth1.0a", "oauth"),
OAUTH20("oauth2.0", "oauth"),
BASIC("basic", "basic"),
FORM("form", "form"),
SSO("sso", "basic");
private String typeTag;
private String urlPart;
public String get(){
return urlPart;
}
public NamedUrlPart getPart() {
return new NamedUrlPart("authType", get());
}
private AuthType(String typeTag, String urlPart) {
this.urlPart = urlPart;
this.typeTag = typeTag;
}
boolean matchesType(String type) {
return typeTag.equals(type);
}
/**
* Get authentication type for the endpoint. like basicAuth, oauth etc.
*
* @return {String}
*/
public static String getAuthTypePart(Endpoint endpoint) {
//TODO: Add support for SSO authentication
if (null == endpoint) {
return BASIC.get(); // default should be basic as per defect 48438
}
String authType = endpoint.getAuthType();
if (StringUtil.isEmpty(authType)) {
return BASIC.get();
}
for (AuthType t : AuthType.values()) {
if (t.matchesType(authType))
return t.get();
}
return BASIC.get();
}
}