Example usage for org.apache.hadoop.security.authentication.util ZKSignerSecretProvider ZKSignerSecretProvider

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

Introduction

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

Prototype

public ZKSignerSecretProvider() 

Source Link

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 {//from w w w  .  j  a va2 s  . c  om
            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;
}