Сброс пароля администратора WebLogic

Вопрос или проблема

Я столкнулся с проблемой сброса пароля администратора WebLogic. Вот шаги, которые я выполнил последовательно. Пожалуйста, помогите понять, почему это не работает таким образом.

У меня есть 2 управляемых экземпляра, работающих на двух отдельных компьютерах.

Шаг 1. Остановить экземпляр административного сервера (я не останавливал менеджер узлов и другие 2 управляемых сервера).

Шаг 2. Установить переменные окружения.

cd $DOMAIN_HOME/bin

. ./setDomainEnv.sh

Шаг 3. Затем выполнил следующую команду для создания нового пароля.

cd ../security
mv DefaultAuthenticatorInit.ldift oldDefaultAuthenticator
java weblogic.security.utils.AdminAccount weblogic новый_пароль .

Шаг 4. Сделал резервную копию существующего файла boot.properties и создал новый файл. Также сделал резервную копию каталога данных административного сервера. Создал новый файл boot.properties с следующей конфигурацией

с простым текстовым именем пользователя (weblogic_admin) и паролем (новый_пароль).

cd ../servers/AdminServer
mv data data_old
cd security/
mv boot.properties oldboot.properties 

Шаг 5. Затем я перезапустил административный сервер. Административный сервер был успешно перезапущен, и я смог войти в админскую консоль с моим новым именем пользователя и паролем. Проблема появилась, когда я попытался остановить административный сервер. Когда я выполняю sh stopWeblogicAdmin.sh, возникает следующая ошибка. Но если я завершить процесс административного сервера, то я могу запустить административный сервер без проблем. Я также могу войти на сервер. Я также могу остановить и запустить управляемые экземпляры через админскую консоль. Но почему это не работает только при попытке остановить? Может кто-нибудь помочь мне с этим?

Stopping Weblogic Server...

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Connecting to t3://jipsl13t:12001 with userid weblogic_admin ...
This Exception occurred at Fri Jan 18 12:20:09 GMT-00:00 2013.
javax.naming.AuthenticationException [Root exception is java.lang.SecurityException: User: weblogic_admin, failed to be authenticated.]
        at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:42)
        at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:788)
        at weblogic.jndi.WLInitialContextFactoryDelegate.pushSubject(WLInitialContextFactoryDelegate.java:682)
        at weblogic.jndi.WLInitialContextFactoryDelegate.newContext(WLInitialContextFactoryDelegate.java:469)
        at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:376)
        at weblogic.jndi.Environment.getContext(Environment.java:315)
        at weblogic.jndi.Environment.getContext(Environment.java:285)
        at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactoryDelegate.java:117)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
        at javax.naming.InitialContext.init(InitialContext.java:223)
        at javax.naming.InitialContext.<init>(InitialContext.java:197)
        at weblogic.management.scripting.WLSTHelper.populateInitialContext(WLSTHelper.java:520)
        at weblogic.management.scripting.WLSTHelper.initDeprecatedConnection(WLSTHelper.java:573)
        at weblogic.management.scripting.WLSTHelper.initConnections(WLSTHelper.java:313)
        at weblogic.management.scripting.WLSTHelper.connect(WLSTHelper.java:203)
        at weblogic.management.scripting.WLScriptContext.connect(WLScriptContext.java:61)
        at weblogic.management.scripting.utils.WLSTUtil.initializeOnlineWLST(WLSTUtil.java:147)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.python.core.PyReflectedFunction.__call__(Unknown Source)
        at org.python.core.PyMethod.__call__(Unknown Source)
        at org.python.core.PyObject.__call__(Unknown Source)
        at org.python.core.PyObject.invoke(Unknown Source)
        at org.python.pycode._pyx4.connect$1(<iostream>:16)
        at org.python.pycode._pyx4.call_function(<iostream>)
        at org.python.core.PyTableCode.call(Unknown Source)
        at org.python.core.PyTableCode.call(Unknown Source)
        at org.python.core.PyFunction.__call__(Unknown Source)
        at org.python.pycode._pyx15.f$0(/product/jip/jipsl11t/wls/eni132_domain/shutdown.py:6)
        at org.python.pycode._pyx15.call_function(/product/tsm/jipsl11t/wls/eni132_domain/shutdown.py)
        at org.python.core.PyTableCode.call(Unknown Source)
        at org.python.core.PyCode.call(Unknown Source)
        at org.python.core.Py.runCode(Unknown Source)
        at org.python.util.PythonInterpreter.execfile(Unknown Source)
        at weblogic.management.scripting.WLST.main(WLST.java:124)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Native Method)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at weblogic.WLST.main(WLST.java:29)
Caused by: java.lang.SecurityException: User: weblogic_admin, failed to be authenticated.
        at weblogic.common.internal.RMIBootServiceImpl.authenticate(RMIBootServiceImpl.java:116)
        at weblogic.common.internal.RMIBootServiceImpl_WLSkel.invoke(Unknown Source)
        at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
        at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
        at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
        at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
Проблема при вызове WLST - Traceback (внутренний последний):
  Файл "/product/jip/jipsl11t/wls/eni132_domain/shutdown.py", строка 6, в ?
  Файл "<iostream>", строка 22, в connect
  Файл "<iostream>", строка 646, в raiseWLSTException
WLSTException: Произошла ошибка при выполнении подключения: User: weblogic_admin, не прошел аутентификацию.
Используйте dumpStack (), чтобы просмотреть весь трассировочный стек.

Готово.
Остановка сервера Derby...

Кажется, вы пытаетесь остановить WebLogic с другим пользователем (отличным от того, который был установлен в процессе сброса пароля).

Пожалуйста, проверьте, есть ли в вашем скрипте остановки или stopWeblogicAdmin.sh пользователь weblogic_admin и его пароль.

Затем измените его на пользователя weblogic и новый пароль.

Такое поведение на самом деле ожидаемо. Управляемый сервер реплицирует локальный LDAP с административного сервера во время запуска, так что ваши управляемые серверы фактически содержат старого пользователя weblogic. Кстати, есть способы расшифровать пароли, хранящиеся в boot.properties, если у вас есть данные в SerializedSystemIni.dat, так что вы могли бы сделать это вместо создания главного пользователя заново.

Ответ или решение

Ваша ситуация связана с изменением пароля администратора WebLogic и возникшими при этом проблемами при его остановке. Давайте разберем шаги, которые вы выполнили, и уточним, как разрешить вашу проблему.

Пошаговый анализ и решение проблемы:

  1. Остановка серверов: Вы правильно остановили администраторский сервер, но не завершили работу Node Manager и управляемых серверов. Это не является проблемой, но важно понимать, что управляемые серверы могут хранить кэшированные учетные данные, которые будут нарушены после изменения пароля администратора.

  2. Настройка переменных окружения: Установка переменных среды выполняется корректно. Убедитесь, что вы находитесь в правильном контексте и рабочем каталоге вашего домена.

  3. Смена пароля: Вы правильно выполнили команду для изменения пароля. Перемещение файла DefaultAuthenticatorInit.ldift также является правильным шагом для обеспечения того, чтобы новая учетная запись была инициализирована.

  4. Создание нового boot.properties: После изменения пароля вы сделали резервную копию boot.properties и создали новый файл, содержащий новые учетные данные. Это критически важный шаг, и вы сделали его правильно.

  5. Проблема с остановкой администратора: Проблема, с которой вы столкнулись при вызове sh stopWeblogicAdmin.sh, связана с тем, что скрипт использует старые учетные данные для подключения к администраторскому серверу. Когда вы меняли пароль, все экземпляры управляемого сервера продолжают использовать старые данные, так как они кэшируют информацию о пользователях и паролях при старте.

Решение проблемы

  1. Проверьте файл stopWeblogicAdmin.sh: Убедитесь, что в этом скрипте используются новые учетные данные. Если скрипт сконфигурирован с использованием старых данных, необходимо обновить его.

  2. Перезапуск управляемых серверов: Рекомендуется остановить и перезапустить управляющие серверы, чтобы они получили обновленный LDAP с новым паролем администратора. Это можно сделать, сначала остановив все управляемые серверы, затем администраторский сервер, и после этого – снова запустите управляющие серверы.

  3. Обновление данных в управляемых серверах: Если вы не хотите останавливать все серверы, вы можете вручную изменить их настройки, чтобы указать новые учетные данные для подключения к администраторскому серверу. Это можно сделать через консоль администрирования или редактируя конфигурационные файлы.

Дополнительные советы

  • Безопасность boot.properties: Сохраняйте boot.properties в зашифрованном виде для улучшения безопасности. Рассмотрите возможность использования параметров шифрования.
  • Отладка: Используйте команду dumpStack() в WLST для получения более подробной информации об ошибках, если они возникают снова.
  • Документация: Ознакомьтесь с официальной документацией Oracle по управлению пользователями и безопасностью для получения более детализированных инструкций.

Следуя этим шагам, вы сможете устранить возникшую проблему с аутентификацией при остановке администратора WebLogic.

Оцените материал
Добавить комментарий

Капча загружается...