Resetear la contraseña de admin en Oracle WebLogic 11g y 12c

Todos hemos tenido algún descuido alguna vez 🙂

Por eso en esta entrada te traigo una solución por si olvidaste la contraseña del admin server de tu Oracle WebLogic. Esta solución funciona para las versiones 11g y 12c (es muy posible que funcione en otras versiones).

Espero que encuentre aquí una solución para ese momento tan incómodo que es no acordarse de esta contraseña.

ESCENARIO 1: NO PUEDES ENTRAR EN LA CONSOLA DE ADMINISTRACIÓN

En este caso utilizas el usuario weblogic para entrar a la consola de administración o utilizas otro, pero no te acuerdas de la contraseña. No te preocupes tiene fácil solución:

PASO 1

Para el admin server. Puedes hacerlo parando el servicio o desde una terminal con los siguientes comandos:

export MW_HOME=\\"ruta de tu instalación de Oracle WebLogic"\Oracle\middleware

export DOMAIN_HOME=\\"ruta de tu instalación de Oracle WebLogic"\Oracle\web\domains\"tu dominio"
\\"ruta de tu instalación de Oracle WebLogic"\Oracle\web\domains\"tu dominio"\bin\stopWebLogic.sh

PASO 2

Renombra el directorio data de la siguiente ruta (no te preocupes WebLogic no volverá a generar):

\\"ruta de tu instalación de Oracle WebLogic"\Oracle\web\domains\"tu dominio"\data

Debería quedar algo así:

\\"ruta de tu instalación de Oracle WebLogic"\Oracle\web\domains\"tu dominio"\old_data

PASO 3

Ahora vamos a ejecutar un script para cargar las variables de entorno

\\"ruta de tu instalación de Oracle WebLogic"\Oracle\web\domains\"tu dominio"\bin\setDomainEnv.sh

PASO 4

Ahora reseteamos la contraseña. Ve a la ruta:

\\"ruta de tu instalación de Oracle WebLogic"\Oracle\web\domains\"tu dominio"\security

y ejecuta desde una terminal:

java weblogic.security.utils.AdminAccount <username> <password> .

PASO 5

Copia el resultado al archivo boot.properties que encontrarás en la siguiente ruta:

\\"ruta de tu instalación de Oracle WebLogic"\Oracle\web\domains\"tu dominio"\servers\"tu instancia manejada 1"\security\boot.properties

PASO 6

Inicia los servicios de Weblogic o inícialo con el script:

\\"ruta de tu instalación de Oracle WebLogic"\Oracle\web\domains\"tu dominio"\bin\startWebLogic.sh

ESCENARIO 2: puedes entrar en la consola de administración de weblogic

En este caso tu problema es el usuario weblogic que se encarga de los node managers o de las instancias manejadas.

El usuario weblogic se utiliza para manejar las instancias manejadas de manera interna por WebLogic. Por eso una buena práctica es tener un usuario de administración diferente al usuario weblogic.

Si este es tu caso entonces:

PASO 1

Entra a la consola de administración de WebLogic y ve a:

 Dominios de seguridad -> myrealm-> Usuarios y grupos -> Usuarios -> weblogic -> Contraseñas -> "insertar la nueva contraseña"
Panel de cambio de contraseña de Oracle WebLogic - Tecnógrafos

PASO 2

Como te he mencionado antes, este usuario maneja internamente las instancias y la consola no cambia la contraseña en los archivos de configuración de WebLogic. Esta tarea la tenemos que hacer manualmente y cambiar la contraseña en el archivo boot.properties a mano.

Para ello ve a la ruta y escriba la contraseña que has puesto en el paso 1 en claro (WebLogic te encriptará el usuario y la contraseña al arrancar el servidor):

\\"ruta de tu instalación de Oracle WebLogic"\Oracle\web\domains\"tu dominio"\servers\"tu instancia manejada 1"\security\boot.properties

NOTA IMPORTANTE: Si no funciona el paso 2 puedes cifrar el usuario y la contraseña a mano con una utilidad incluida en WebLogic.

Esto puedes hacerlo abriendo una terminal en la ruta:

\\"ruta de tu instalación de Oracle WebLogic"\Oracle\web\domains\"tu dominio"\bin\setDomainEnv.cmd

Y ejecutando el siguiente comando:

java weblogic.security.utils.AdminAccount <usuario> <contraseña> .

Copia el resultado al archivo boot.properties tal y como te indico en el paso 2.

problemas que pueden surgir

Es posible que al cambiar la contraseña del usuario weblogic, en Windows al menos, no reconozca el cambio y de un error parecido a este:

<Critical> <Security> <BEA-090052> <Server installed as Windows NT service with incorrect password for user operator; The password may have been changed since the server was installed as a Windows NT Service. Contact the Windows NT system administrator.>

Esto sucede porque se han quedado corruptos algunos ficheros de configuración LDAP o Active Directory.

Ve a la ruta que te indico abajo y haz un backup de la carpeta data. Después borra su contenido:

\\"ruta de tu instalación de Oracle WebLogic"\Oracle\web\domains\"tu dominio"\data

Y prueba de nuevo. También puedes borrar la carpeta cache que está tanto en el admin server como en las instancias manejas.

Estos archivos se recrearán con la configuración actualizada.