Search in sources :

Example 6 with RangerBasePlugin

use of org.apache.ranger.plugin.service.RangerBasePlugin in project ranger by apache.

the class RangerPluginPerfTester method main.

public static void main(String[] args) {
    if (!parseArguments(args)) {
        System.err.println("Exiting.. ");
        System.exit(-1);
    }
    System.out.println("Arguments:");
    System.out.println("\t\tservice-type:\t\t\t" + serviceType);
    System.out.println("\t\tservice-name:\t\t\t" + serviceName);
    System.out.println("\t\tapp-id:\t\t\t\t" + appId);
    System.out.println("\t\tranger-host:\t\t\t" + rangerHostName);
    System.out.println("\t\tsocket-read-timeout:\t\t" + socketReadTimeout);
    System.out.println("\t\tpolling-interval:\t\t" + pollingInterval);
    System.out.println("\t\tpolicy-cache-dir:\t\t" + policyCacheDir);
    System.out.println("\t\tuse-cached-policy-evaluator:\t" + useCachedPolicyEvaluator);
    System.out.println("\n\n");
    Path filePath = buildConfigurationFile();
    if (filePath != null) {
        RangerConfiguration rangerConfig = RangerConfiguration.getInstance();
        rangerConfig.addResource(filePath);
        plugin = new RangerBasePlugin(serviceType, appId);
        Runtime runtime = Runtime.getRuntime();
        runtime.gc();
        long totalMemory = runtime.totalMemory();
        long freeMemory = runtime.freeMemory();
        System.out.println("Initial Memory Statistics:");
        System.out.println("\t\tMaximum Memory available for the process:\t" + runtime.maxMemory());
        System.out.println("\t\tInitial In-Use memory:\t\t\t\t" + (totalMemory - freeMemory));
        System.out.println("\t\tInitial Free memory:\t\t\t\t" + freeMemory);
        System.out.println("\n\n");
        plugin.init();
        while (true) {
            runtime.gc();
            freeMemory = runtime.freeMemory();
            totalMemory = runtime.totalMemory();
            System.out.println("Memory Statistics:");
            System.out.println("\t\tCurrently In-Use memory:\t" + (totalMemory - freeMemory));
            System.out.println("\t\tCurrently Free memory:\t\t" + freeMemory);
            System.out.println("\n\n");
            try {
                Thread.sleep(60 * 1000);
            } catch (InterruptedException e) {
                System.err.println("Main thread interrupted..., exiting...");
                break;
            }
        }
    } else {
        System.err.println("Failed to build configuration file");
    }
}
Also used : Path(org.apache.hadoop.fs.Path) RangerBasePlugin(org.apache.ranger.plugin.service.RangerBasePlugin) RangerConfiguration(org.apache.ranger.authorization.hadoop.config.RangerConfiguration)

Example 7 with RangerBasePlugin

use of org.apache.ranger.plugin.service.RangerBasePlugin in project ranger by apache.

the class RangerAtlasAuthorizer method checkAccess.

private boolean checkAccess(RangerAccessRequestImpl request) {
    boolean ret = false;
    RangerBasePlugin plugin = atlasPlugin;
    if (plugin != null) {
        RangerAccessResult result = plugin.isAccessAllowed(request);
        ret = result != null && result.getIsAllowed();
    } else {
        LOG.warn("RangerAtlasPlugin not initialized. Access blocked!!!");
    }
    return ret;
}
Also used : RangerAccessResult(org.apache.ranger.plugin.policyengine.RangerAccessResult) RangerBasePlugin(org.apache.ranger.plugin.service.RangerBasePlugin)

Example 8 with RangerBasePlugin

use of org.apache.ranger.plugin.service.RangerBasePlugin in project ranger by apache.

the class RangerAtlasAuthorizer method init.

@Override
public void init() {
    if (LOG.isDebugEnabled()) {
        LOG.debug("==> RangerAtlasPlugin.init()");
    }
    RangerBasePlugin plugin = atlasPlugin;
    if (plugin == null) {
        synchronized (RangerAtlasPlugin.class) {
            plugin = atlasPlugin;
            if (plugin == null) {
                plugin = new RangerAtlasPlugin();
                plugin.init();
                plugin.setResultProcessor(new RangerDefaultAuditHandler());
                atlasPlugin = plugin;
            }
        }
    }
    if (LOG.isDebugEnabled()) {
        LOG.debug("<== RangerAtlasPlugin.init()");
    }
}
Also used : RangerDefaultAuditHandler(org.apache.ranger.plugin.audit.RangerDefaultAuditHandler) RangerBasePlugin(org.apache.ranger.plugin.service.RangerBasePlugin)

Example 9 with RangerBasePlugin

use of org.apache.ranger.plugin.service.RangerBasePlugin in project ranger by apache.

the class RangerKafkaAuthorizer method configure.

/*
	 * (non-Javadoc)
	 *
	 * @see kafka.security.auth.Authorizer#configure(Map<String, Object>)
	 */
@Override
public void configure(Map<String, ?> configs) {
    RangerBasePlugin me = rangerPlugin;
    if (me == null) {
        synchronized (RangerKafkaAuthorizer.class) {
            me = rangerPlugin;
            if (me == null) {
                try {
                    // Possible to override JAAS configuration which is used by Ranger, otherwise
                    // SASL_PLAINTEXT is used, which force Kafka to use 'sasl_plaintext.KafkaServer',
                    // if it's not defined, then it reverts to 'KafkaServer' configuration.
                    final Object jaasContext = configs.get("ranger.jaas.context");
                    final String listenerName = (jaasContext instanceof String && StringUtils.isNotEmpty((String) jaasContext)) ? (String) jaasContext : SecurityProtocol.SASL_PLAINTEXT.name();
                    JaasContext context = JaasContext.load(Type.SERVER, new ListenerName(listenerName), configs);
                    LoginManager loginManager = LoginManager.acquireLoginManager(context, true, configs);
                    Subject subject = loginManager.subject();
                    UserGroupInformation ugi = MiscUtil.createUGIFromSubject(subject);
                    if (ugi != null) {
                        MiscUtil.setUGILoginUser(ugi, subject);
                    }
                    logger.info("LoginUser=" + MiscUtil.getUGILoginUser());
                } catch (Throwable t) {
                    logger.error("Error getting principal.", t);
                }
                me = rangerPlugin = new RangerBasePlugin("kafka", "kafka");
            }
        }
    }
    logger.info("Calling plugin.init()");
    rangerPlugin.init();
    RangerDefaultAuditHandler auditHandler = new RangerDefaultAuditHandler();
    rangerPlugin.setResultProcessor(auditHandler);
}
Also used : JaasContext(org.apache.kafka.common.security.JaasContext) LoginManager(org.apache.kafka.common.security.authenticator.LoginManager) RangerDefaultAuditHandler(org.apache.ranger.plugin.audit.RangerDefaultAuditHandler) ListenerName(org.apache.kafka.common.network.ListenerName) RangerBasePlugin(org.apache.ranger.plugin.service.RangerBasePlugin) Subject(javax.security.auth.Subject) UserGroupInformation(org.apache.hadoop.security.UserGroupInformation)

Example 10 with RangerBasePlugin

use of org.apache.ranger.plugin.service.RangerBasePlugin in project ranger by apache.

the class RangerSolrAuthorizer method init.

/*
	 * (non-Javadoc)
	 *
	 * @see org.apache.solr.security.SolrAuthorizationPlugin#init(java.util.Map)
	 */
@Override
public void init(Map<String, Object> initInfo) {
    logger.info("init()");
    try {
        useProxyIP = RangerConfiguration.getInstance().getBoolean(PROP_USE_PROXY_IP, useProxyIP);
        proxyIPHeader = RangerConfiguration.getInstance().get(PROP_PROXY_IP_HEADER, proxyIPHeader);
        // First get from the -D property
        solrAppName = System.getProperty("solr.kerberos.jaas.appname", solrAppName);
        // Override if required from Ranger properties
        solrAppName = RangerConfiguration.getInstance().get(PROP_SOLR_APP_NAME, solrAppName);
        logger.info("init(): useProxyIP=" + useProxyIP);
        logger.info("init(): proxyIPHeader=" + proxyIPHeader);
        logger.info("init(): solrAppName=" + solrAppName);
        logger.info("init(): KerberosName.rules=" + MiscUtil.getKerberosNamesRules());
        authToJAASFile();
    } catch (Throwable t) {
        logger.fatal("Error init", t);
    }
    try {
        RangerBasePlugin me = solrPlugin;
        if (me == null) {
            synchronized (RangerSolrAuthorizer.class) {
                me = solrPlugin;
                logger.info("RangerSolrAuthorizer(): init called");
                if (me == null) {
                    me = solrPlugin = new RangerBasePlugin("solr", "solr");
                }
            }
        }
        solrPlugin.init();
    } catch (Throwable t) {
        logger.fatal("Error creating and initializing RangerBasePlugin()");
    }
}
Also used : RangerBasePlugin(org.apache.ranger.plugin.service.RangerBasePlugin)

Aggregations

RangerBasePlugin (org.apache.ranger.plugin.service.RangerBasePlugin)10 RangerDefaultAuditHandler (org.apache.ranger.plugin.audit.RangerDefaultAuditHandler)3 User (org.apache.hadoop.hbase.security.User)2 RangerAccessResult (org.apache.ranger.plugin.policyengine.RangerAccessResult)2 Test (org.junit.Test)2 GsonBuilder (com.google.gson.GsonBuilder)1 Subject (javax.security.auth.Subject)1 Path (org.apache.hadoop.fs.Path)1 UserGroupInformation (org.apache.hadoop.security.UserGroupInformation)1 ListenerName (org.apache.kafka.common.network.ListenerName)1 JaasContext (org.apache.kafka.common.security.JaasContext)1 LoginManager (org.apache.kafka.common.security.authenticator.LoginManager)1 RangerConfiguration (org.apache.ranger.authorization.hadoop.config.RangerConfiguration)1 RangerAccessRequest (org.apache.ranger.plugin.policyengine.RangerAccessRequest)1 BeforeClass (org.junit.BeforeClass)1