ThriftSecurityException (пользователь: root, код: BAD_CREDENTIALS)

Когда я пытаюсь подключиться к accumulo из java-клиента, это не удается. Я использую пользователя «root», но изменил пароль. Я отладил свой код, на самом деле он получает правильное имя пользователя и пароль, те же самые, которые я использую для входа в оболочку.

Я прочитал на некоторых других сайтах, что мне нужно установить «trace.user» и «trace.password» в моем файле accumulo-site.xml, поэтому я сделал это и перезапустил accumulo. К сожалению, это ничего не изменило.

Когда я пытаюсь подключиться из java, это важные строки из стека:

Caused by: org.apache.accumulo.core.client.AccumuloSecurityException: Error BAD_CREDENTIALS for user root - Username or Password is Invalid
Caused by: ThriftSecurityException(user:root, code:BAD_CREDENTIALS)

Из моей накопительной консоли я вижу это:

08 15:44:06,0544    tserver:michael-GA-890GPA-UD3H  4   
ERROR
ThriftSecurityException(user:root, code:BAD_CREDENTIALS)

Когда я просматриваю свои журналы накопления, я просто вижу одно и то же исключение, и его стек печатается каждую секунду.

Я просмотрел руководство по накоплению и не смог найти ничего, что мне не хватает. Поиск google и поиск SO также не помогли мне.

Кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?


person msknapp    schedule 08.02.2015    source источник
comment
на случай, если у кого-то еще возникнет эта проблема, я нашел способ ее обойти. Я только что создал нового пользователя в своей оболочке accumulo с минимальными разрешениями и использую его для своих соединений. Я все равно был бы признателен за ответ на этот вопрос, поскольку сообщения об ошибках продолжают накапливаться в моих журналах.   -  person msknapp    schedule 09.02.2015
comment
Мне также пришлось выполнить setauths -s public -u ‹user›, чтобы предоставить новому пользователю соответствующие полномочия.   -  person msknapp    schedule 09.02.2015


Ответы (2)


В зависимости от версии, которую вы используете, у вас также может быть trace.token.property.password, определенный в accumulo-site.xml, который является заменой trace.password. >=1.6.0 представил свойство trace.token.property.password. Если в конфигурации присутствует и это свойство, и trace.password, trace.token.property.password будет иметь приоритет над trace.password.

Посмотрите на файл $ACCUMULO_LOG_DIR/tracer_$hostname.debug.log, там, скорее всего, есть множество исключений.

«Правильный» способ (читай: как вы хотели бы сделать это в производственной среде) для настройки трассировщика состоит в том, чтобы создать таблицу «трассировки» как «корень», создать пользователя «трассировки» и дать « пользователю trace разрешены READ, WRITE и ALTER_TABLE в таблице «trace». Затем обновите trace.user и trace.token.property.password в accumulo-site.xml.

person elserj    schedule 10.02.2015
comment
спасибо, я должен был упомянуть в своем исходном сообщении, что я также изменил trace.token.property.password, чтобы иметь правильный пароль. Я также только что дал root «общедоступные» разрешения. Исключение по-прежнему накапливается раз в секунду в моих журналах. Может ли это быть из-за специальных символов в моем пароле? У меня есть # и ! в моем пароле. - person msknapp; 13.02.2015
comment
Авторизации не должны иметь значения, равно как и специальные символы в пароле. - person elserj; 13.02.2015
comment
После долгих экспериментов я считаю, что виновником был восклицательный знак в моем пароле. Сменил пароль на простой, обновил файл сайта и все заработало. Я попытался изменить его обратно, но он не позволил мне создать пароль с восклицательным знаком в нем, accumulo создает исключение, говорящее, что событие не найдено. Когда вы изначально создаете пользователя root, вы можете обойтись без восклицательного знака в своем пароле, как я попал в эту ситуацию. Ваша рекомендация создать отдельного пользователя с соответствующими разрешениями также сработала для меня. - person msknapp; 22.02.2015
comment
Это звучит как ошибка в JLine (событие не найдено). Я открою вопрос, чтобы мы могли попытаться изучить его. - person elserj; 23.02.2015

Не уверен, хотите ли вы все еще решение или нет, мне помогло изменение значения trace.token.property.password на правильный пароль, то есть значение instance.secret для trace.user «корня» в файле accumulo-site.xml.

Или вы можете открыть оболочку accumulo, используя пользователя «root», создать нового пользователя внутри оболочки, а затем обновить значения как пользователя трассировки, так и его текущего пароля.

person Tanny    schedule 02.06.2015