AuthenticationManager源码分析

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类。

你可能感兴趣的:(AuthenticationManager源码分析)