Por que o registro de um novo usuário usando o plugin ACEGI para Grails fornece uma "função padrão não encontrada". erro

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

Pergunta

Talvez coloque uma maneira diferente, como configuro uma função de segurança padrão para usuários recém-registrados em Grails usando o plug-in Teh Acegi?

Eu segui o tutorial de Acegi/Grails aqui E estou usando anotações do controlador - embora ainda não tenha garantido nada.

Adicionei uma segunda função chamada web_user e adicionei com sucesso um usuário a essa função.

Quando uso o controlador de registro de outro novo usuário, no entanto, recebo uma mensagem de erro de Grails dizendo "Default role not found".

Eu pude ver como eu poderia codificar meu caminho aproximadamente com isso, lidando com uma lista de função nula no método de criação apropriado ou até mesmo postando um nome de função padrão de volta como um campo oculto da visualização de registro, mas eles se sentem não-gradões.

Eu acho que devo ser capaz de definir isso na própria classe de domínio do usuário ou de alguma forma no relacionamento no banco de dados entre as tabelas do usuário e da função.

O que é o pretendido significa definir uma função padrão e por que estou recebendo esta mensagem.

Ah, e como você pronuncia ACEGI?

Foi útil?

Solução

Esta é uma questão de documentação. A página de registro não permite que você selecione funções, pois é esperado que seja uma página de inscrição pública. Pelo menos uma função é necessária ao criar um usuário, para que exista uma função 'padrão' configurada para este fluxo de trabalho.

Você pode definir a função padrão no SecurityConfig.groovy com o atributo 'defaultrole'. Por padrão, é 'role_user', mas pode ser o que você quiser. Deve haver uma instância de autoridade com esse valor antes que os usuários possam se registrar.

A pronúncia está nas perguntas frequentes - http://www.acegisecurity.org/faq.html

Outras dicas

Eu encontrei a resposta. Normalmente de graals, existe uma função padrão chamada Role_User. Quando você registra um novo usuário, ele procura uma função com esse nome e, se encontrar um, atribui -o ao usuário.

A mensagem "A função padrão não encontrada" é ambígua em como ela pode ser lida.

Primeiro, pensei que isso significava "você precisava definir uma função padrão em algum lugar para que os usuários recém -registrados sejam atribuídos a ela".

No entanto, acho que isso realmente significa "você precisa criar a linha do banco de dados na tabela de funções, que é chamada de role_user para que a configuração normal funcione".

Parece -me que parte da geração de graxos dos recursos de segurança deve apenas adicionar um role_admin e role_user ao bootstrap de banco de dados de alguma forma e fizeram com a possibilidade do erro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top