AuthenticationManager类
AuthenticationManager类主要负责认证管理的部分。其初始化时,从配置文件中读取进行身份验证的类。如果没有则是默认的身份验证处理类(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类是对AuthenticationProvider类的封装。目前实现的子类有:
AuthenticationProvider类
AuthenticationProvider类 提供了用户的Name, 和相应的Group信息。
AuthenticationProvider类提供了对SimpleAuthenticationHandler, 以及KerberosAuthenticationHandler两个子类。
public abstract class AuthenticationProvider {
public AuthenticationProvider() {
public abstract String getUserName();
public abstract String[] getGroupNames();
}
目前AuthenticationProvider的子类共有:DefaultAuthenticationProvider类。