Eliminar usuario registrado con el complemento de seguridad shiro en griales

Tengo un formulario para verificar el inicio de sesión y la contraseña antes de eliminar al usuario. Éste:

<table>
        <g:form action="deleteUser">
            <tr>
                <td><label for="username">Login: </label></td>
                <td><g:textField name="username"/>
            </tr>
            <tr>
                <td><label for="password">Password: </label></td>
                <td><g:passwordField name="password"/></td>
            </tr>
            <tr>
                <td colspan="2"><g:submitButton name="delete" value="Delete"/></td>
            </tr>
        </g:form>
    </table>

cómo puedo hacer lógica para esto si la contraseña está en sha512hash (usuario registrado a través del complemento shiro). ¿Cómo puedo verificar la contraseña como una cadena del formulario de contraseña con el código hash de db? ¿Puedo usar el método de autenticación de la clase DbRealm? Si es así, ¿CÓMO?

PD lo siento por mi inglés!

preguntado el 04 de julio de 12 a las 09:07

1 Respuestas

Si entiendo su pregunta de la manera correcta, solo desea verificar la contraseña de los usuarios por última vez antes de eliminar al usuario.

En la base de datos, solo se almacena el hash de la contraseña. Pero puede comparar el hash de la nueva contraseña con el hash de la contraseña almacenada:

def dbhash = ShiroUser.findByUsername(params.username)?.passwordHash
if (new Sha256Hash("password").toHex()==dbhash) {
  //delete user
} else {
  //display error message
}

Espero que ayude!

Respondido 04 Jul 12, 17:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.