Example usage for org.apache.hadoop.security.authentication.util SignerSecretProvider init

List of usage examples for org.apache.hadoop.security.authentication.util SignerSecretProvider init

Introduction

In this page you can find the example usage for org.apache.hadoop.security.authentication.util SignerSecretProvider init.

Prototype

public abstract void init(Properties config, ServletContext servletContext, long tokenValidity)
        throws Exception;

Source Link

Document

Initialize the SignerSecretProvider

Usage

From source file:org.apache.ranger.security.web.filter.RangerKrbFilter.java

License:Apache License

public static SignerSecretProvider constructSecretProvider(ServletContext ctx, Properties config,
        boolean disallowFallbackToRandomSecretProvider) throws Exception {
    long validity = Long.parseLong(config.getProperty(AUTH_TOKEN_VALIDITY, "36000")) * 1000;

    String name = config.getProperty(SIGNER_SECRET_PROVIDER);
    if (StringUtils.isEmpty(name)) {
        if (!disallowFallbackToRandomSecretProvider) {
            name = "random";
        } else {//w ww .ja v a2s. c  o m
            name = "file";
        }
    }

    SignerSecretProvider provider;
    if ("file".equals(name)) {
        provider = new FileSignerSecretProvider();
        try {
            provider.init(config, ctx, validity);
        } catch (Exception e) {
            if (!disallowFallbackToRandomSecretProvider) {
                LOG.info("Unable to initialize FileSignerSecretProvider, "
                        + "falling back to use random secrets.");
                provider = new RandomSignerSecretProvider();
                provider.init(config, ctx, validity);
            } else {
                throw e;
            }
        }
    } else if ("random".equals(name)) {
        provider = new RandomSignerSecretProvider();
        provider.init(config, ctx, validity);
    } else if ("zookeeper".equals(name)) {
        provider = new ZKSignerSecretProvider();
        provider.init(config, ctx, validity);
    } else {
        provider = (SignerSecretProvider) Thread.currentThread().getContextClassLoader().loadClass(name)
                .newInstance();
        provider.init(config, ctx, validity);
    }
    return provider;
}

From source file:org.apache.zeppelin.realm.kerberos.KerberosRealm.java

License:Apache License

private SignerSecretProvider constructSecretProvider(boolean fallbackToRandomSecretProvider) throws Exception {
    SignerSecretProvider provider;
    String secretProvider = config.getProperty(SIGNER_SECRET_PROVIDER);

    if (fallbackToRandomSecretProvider && config.getProperty(SIGNATURE_SECRET_FILE) == null) {
        secretProvider = "random";
    }/*from  w  ww  .  j a  v  a  2  s .co m*/

    if ("file".equals(secretProvider)) {
        try {
            provider = new FileSignerSecretProvider();
            provider.init(config, null, tokenValidity);
            LOG.info("File based secret signer initialized.");
        } catch (Exception e) {
            if (fallbackToRandomSecretProvider) {
                LOG.info("Unable to initialize FileSignerSecretProvider, "
                        + "falling back to use random secrets.");
                provider = new RandomSignerSecretProvider();
                provider.init(config, null, tokenValidity);
                LOG.info("Random secret signer initialized.");
            } else {
                throw new RuntimeException("Can't initialize File based secret signer. Reason: " + e);
            }
        }
    } else if ("random".equals(secretProvider)) {
        provider = new RandomSignerSecretProvider();
        provider.init(config, null, tokenValidity);
        LOG.info("Random secret signer initialized.");
    } else {
        throw new RuntimeException("Custom secret signer not implemented yet. Use 'file' or 'random'.");
    }
    return provider;
}