Nous développons une application web qui interagit avec des composants hadoop tels que HDFS, HBase et Impala. Le cluster est kerberisé, nous nous authentifions avec la configuration JAAS. Nous configurons JAAS dans les arguments VM comme ci-dessousErreur Kerberos se connectant à impala et hbase
-Djava.security.auth.login.config=/user/gss-jaas.conf
-Djava.security.krb5.conf=/user/krb5.ini
-Djavax.security.auth.useSubjectCredsOnly=false
Notre config JAAS est comme ci-dessous
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;
};
Il fonctionne très bien lors de la connexion à HBase et HDFS. Mais en nous connectant avec Impala, nous sommes confrontés à des problèmes. Nous pouvons nous connecter avec Impala lorsque nous changeons com.sun.security.jgss.initiate
à Client
Mais nous ne voulons pas changer ou basculer entre configs Jaas.
Est-il possible d'utiliser le même fichier de configuration JAAS pour tous les services? Nous ne voulons pas utiliser System.setProperties pour cela. et aussi lors de la commutation entre configs JAAS nous obtenons des exceptions. Donc, en utilisant le même fichier de configuration serait mieux.
Une aide?
Par ailleurs, 'com.sun.security.jgss.initiate' est toujours prise en charge mais il est dépréciée, vous devriez utilisez explicitement 'com.sun.security.jgss.krb5.initiate' à la place –
Et si vous êtes curieux de savoir comment JAAS charge votre configuration (ou si vous devez déboguer votre configuration, car les erreurs de syntaxe et FileNotFound ne sont pas signalées par défaut): '-Djava.security.debug = gssloginconfig, configfile, configparser, logincontext' –