2017-08-19 2 views
0

Wir entwickeln eine Webanwendung, die mit Hadoop-Komponenten wie HDFS, HBase und Impala interagiert. Der Cluster ist kerberisiert, wir authentifizieren uns mit JAAS config. JAAS in VM Argumente wie unterKerberos-Fehler beim Verbinden mit Impala und HBase

-Djava.security.auth.login.config=/user/gss-jaas.conf 
-Djava.security.krb5.conf=/user/krb5.ini 
-Djavax.security.auth.useSubjectCredsOnly=false 

Unsere JAAS Config Wir konfigurieren ist als unten

com.sun.security.jgss.initiate { 
    com.sun.security.auth.module.Krb5LoginModule required 
    useTicketCache=false 
    doNotPrompt=true 
    useKeyTab=true 
    keyTab="file:C:/blah/blah/dummy.keytab" 
    principal="[email protected]" 
    debug=false; 
}; 

Es funktioniert gut, wenn sie hbase und HDFS verbindet. Aber während wir uns mit Impala verbinden, stehen wir vor Problemen. Wir können mit Impala verbinden, wenn wir com.sun.security.jgss.initiate zu Client ändern Aber wir wollen nicht ändern oder zwischen Jaas-Konfigurationen wechseln.

Gibt es eine Möglichkeit, die gleiche JAAS-Konfigurationsdatei für alle Dienste zu verwenden? Wir möchten dazu System.setProperties nicht verwenden. Und wenn wir zwischen JAAS-Konfigurationen wechseln, bekommen wir Ausnahmen. Also wäre es besser, die selbe Konfigurationsdatei zu verwenden.

Irgendwelche Hilfe?

Antwort

0

Sie müssen nicht wechseln. Benutze einfach beide!

Haben Sie sich gefragt, warum gibt es zwei obligatorische ; - eine nach dem letzten Parameter und eine nach der Klammer? Das liegt daran, dass mehrere Mechanismen innerhalb des Abschnitts (vom ersten bis zum letzten) und mehrere Abschnitte (mit anderen Namen) in derselben Konfigurationsdatei definiert werden können.

Blick in die Kafka Dokumentation zum Beispiel, wie sie sowohl für den Broker und die Client-Anwendungen in der gleichen Datei, um die JAAS-Konfiguration eingestellt: http://docs.confluent.io/current/kafka/sasl.html

Und falls Sie über die vielfältigen Mechanismen neugierig, schauen Sie in die Java Dokumentation (aber vorsichtig sein, ist das Zeug einen Alptraum zu zwicken und zu debuggen ...)https://docs.oracle.com/javase/8/docs/jre/api/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html

+0

By the way, 'com.sun.security.jgss.initiate' wird weiterhin unterstützt, aber es ist veraltet, sollten Sie Verwenden Sie explizit 'com.sun.security.jgss.krb5.initiate' anstelle von –

+0

Und wenn Sie neugierig sind, wie JAAS Ihre lädt Konfiguration (oder wenn Sie Ihre Konfiguration debuggen müssen, weil Syntaxfehler und FileNotFound standardmäßig nicht gemeldet werden): '-Djava.security.debug = gssloginconfig, configfile, configparser, logincontext' –

Verwandte Themen