¿Por qué el registro de un nuevo usuario usando el plugin para Grails ACEGI dan un “rol predeterminado no encontrado.” Error

StackOverflow https://stackoverflow.com/questions/2049789

Pregunta

Tal vez poner de una manera diferente, ¿cómo puedo configurar una función de seguridad predeterminada para los usuarios recién registrados en Grails usando teh ACEGI plug-in?

He seguido el acegi / griales aquí y estoy usando anotaciones controlador -. aunque no he conseguido nada todavía

He añadido una segunda función llamada WEB_USER y han añadido con éxito un usuario a esa función.

Cuando uso el controlador de registro lado a otro otro nuevo usuario, sin embargo, me sale un mensaje de error diciendo Griales "Default role not found".

pude ver cómo podría codificar mi manera más o menos fuera de este ya sea por el manejo de una lista de funciones nulo en el método de crear apropiada, o incluso la publicación de un nombre de función predeterminada de vuelta como un campo oculto de la vista de registro, pero se sienten ONU -Grails.

Creo que debería ser capaz de definir esto ya sea en la propia clase de dominio del usuario o de alguna manera en la relación en la base de datos entre las tablas de usuarios y roles.

¿Qué hay de los medios destinados a definir una función predeterminada, y por qué estoy recibiendo este mensaje.

Ah, y ¿cómo se pronuncia acegi?

¿Fue útil?

Solución

Este es un tema de documentación. La página de registro no permite seleccionar las funciones ya que se espera que va a ser una página de registro público. Se requiere al menos un rol al crear un usuario por lo que espera que haya un papel 'por defecto' configurado para este flujo de trabajo.

Puede configurar la función predeterminada en SecurityConfig.groovy con el atributo 'defaultrole'. Por defecto es 'ROLE_USER' pero puede ser lo que quiera. Tiene que haber una instancia Autoridad con este valor antes de que los usuarios pueden registrarse.

La pronunciación es en el FAQ - http://www.acegisecurity.org/faq.html

Otros consejos

He encontrado la respuesta. Por lo general de Grails, hay una función predeterminada llamada ROLE_USER. Cuando se registra un nuevo usuario que busca un papel con ese nombre y si encuentra uno que le asigna al usuario.

El mensaje "La función por defecto no encontrado" es ambiguo en la forma en que se puede leer.

Al principio pensé que significaba "es necesario definir una función predeterminada en algún lugar para que los usuarios recién registrados se asignan a la misma".

Sin embargo, creo que en realidad significa "lo que necesita para crear la base de datos de fila en la tabla de papeles que se llama ROLE_USER de manera que la configuración normal funciona".

Se me ocurre que parte de la generación griales de las características de seguridad debe simplemente añadir un ROLE_ADMIN y ROLE_USER a la base de datos de arranque de alguna manera y lo han hecho con la posibilidad del error.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top