AuthenticationManager類
AuthenticationManager類主要負(fù)責(zé)認(rèn)證管理的部分。其初始化時(shí)业踏,從配置文件中讀取進(jìn)行身份驗(yàn)證的類禽炬。如果沒有則是默認(rèn)的身份驗(yàn)證處理類(org.apache.sqoop.security.authentication.SimpleAuthenticationHandler)。
初始化
初始化的源代碼如下:
public synchronized void initialize() throws ClassNotFoundException, IllegalAccessException, InstantiationException {
if(LOG.isTraceEnabled()) {
LOG.trace("Begin authentication manager initialization");
}
String handler = SqoopConfiguration.getInstance().getContext().getString("org.apache.sqoop.security.authentication.handler", "org.apache.sqoop.security.authentication.SimpleAuthenticationHandler").trim();
authenticationHandler = SecurityFactory.getAuthenticationHandler(handler);
authenticationHandler.doInitialize();
authenticationHandler.secureLogin();
if(LOG.isInfoEnabled()) {
LOG.info("Authentication loaded.");
}
}
authenticationHandler類
authenticationHandler類是對(duì)AuthenticationProvider類的封裝勤家。目前實(shí)現(xiàn)的子類有:
AuthenticationProvider類
AuthenticationProvider類 提供了用戶的Name, 和相應(yīng)的Group信息腹尖。
AuthenticationProvider類提供了對(duì)SimpleAuthenticationHandler, 以及KerberosAuthenticationHandler兩個(gè)子類伐脖。
public abstract class AuthenticationProvider {
public AuthenticationProvider() {
public abstract String getUserName();
public abstract String[] getGroupNames();
}
目前AuthenticationProvider的子類共有:DefaultAuthenticationProvider類热幔。