Nunca usei o Acegi, mas com base no link que você postou, e o que li nele, acho que da pra dar um chute:
ele gera as páginas necessárias para o registro e edição de usuários. Será que você não deveria usar estas páginas ao invés de usar as que criou com o generate-all?
Aliás, visto que ele gera estas páginas, bastaria neste caso você customizá-las para incorporar os novos atributos, não?
Prezado,
Esse exemplo não faz conexão com nenhum BD, ele usa o BD JAVA para simlular a aplicação mas quando vc realmente fizer uma conexão com um BD MySQL por exemplo, existe uma action no plugin que faz a encriptação das senhas antes de gravar no BD, veja:
def passwordEncoder(String passwd) {
def securityConfig = getSecurityConfig()
def algorithm = securityConfig.security.algorithm
def encodeHashAsBase64 = securityConfig.security.encodeHashAsBase64
def encoded = new String(Hex.encodeHex(MessageDigest.getInstance(algorithm).digest(passwd.bytes)))
if (encodeHashAsBase64) {
return encoded.bytes.encodeBase64()
}
return encoded
}
Seu problema tb será resolvido com a aplicação apontando para um BD, depois de concluir os passos de criação das view´s e controladores conforme o exemplo, vc poderá cadastrar sim um novo usuário antes de testar, é só acessar a página <!-- m --><a class="postlink" href="http://localhost:8080/sua-aplicacao/role/create">http://localhost:8080/sua-aplicacao/role/create</a><!-- m -->
Ah, vc pode colocar o que quiser na classe person, ele funciona sim, criará os campos nos forms pra vc, não esquece de pedir para regerar as view´s e o controlador é claro!
Qualquer dúvida, escreve aqui =)
Blz rlinux, o fato de encriptografar a senha tudo bem, mais eu quero recuperar os usuários já cadastrados do banco, das páginas geradas pelo plugin não vi nenhum momento em que ele busca de algum lugar o usuário e senha.
Me parece que ele busca num arquivo externo o usuário e senha;
postUrl = "${request.contextPath}${config.filterProcessesUrl}"
Ok, desculpe, vamos por partes (como diria o Jack)
Vc criou um BD em MySQL certo? E tem acesso as tabelas:
- User;
- Role;
- Requestmap;
Bem, na tabela "User" deverão estar os campos dos seus usuários (isso se vc seguiu rigorosamente o tutorial que vc mencionou ok?)
Para saber quais são esses usuários e visualizar os campos acesse <!-- m --><a class="postlink" href="http://localhost:8080/sua-aplicacao/user/list">http://localhost:8080/sua-aplicacao/user/list</a><!-- m -->
Detalhe: o Grails cria a view com apenas alguns campos para mostrar, assim sendo, acesse a view e inclua e remova os campos que vc desejar.
Para criar novos, acesse idem/create
E assim por diante!
As regras para acesso deverão ser colocadas em <!-- m --><a class="postlink" href="http://localhost:8080/sua-aplicacao/requestmap/create">http://localhost:8080/sua-aplicacao/requestmap/create</a><!-- m -->
Em <!-- m --><a class="postlink" href="http://localhost:8080/sua-aplicacao/role/create">http://localhost:8080/sua-aplicacao/role/create</a><!-- m --> vc criará os perfis de seus usuários.
Para concluir, me diga mais uma coisa, vc acertou o arquivo DataSource.groovy que encontra-se em sua-aplicação (grails-app) /Configuration (conf) e apontou ele para o seu BD MySQl certo?
Pessoal eu estou com um problema utilizando o plugin no mysql , eu apontei o algoritmo de criptografia para utilizar o MD5 no DefaultSecurityConfig.groovy e observei que ele está salvando a senha neste formato, no entanto quando vou logar. sempre da usuário invalido.
Como você está se logando no sistema?
Não está passando para o mysql acidentalmente a senha do acegi?
Olha os passos que eu segui...tem nada de anormal não né?
1 – Procedimento normal de instalação
2- Segue os passos deste tutorial <!-- m --><a class="postlink" href="http://www.grails.org/AcegiSecurity+Plugin+-+Basic+Tutorial">http://www.grails.org/AcegiSecurity+Plu ... c+Tutorial</a><!-- m -->
3- Se eu rodar apenas em memória o tutorial funciona quando eu passei para o mysql observei que estava dando erro no tipo de dado do tipo booleano, passei para TINYINT(1) e resolveu o problema.
4- Criei um role qualquer e atribuído de admin e um usuário com real name Luiz carlos e username luiz.carlos com passwd 123456 que no banco se tornou e10adc3949ba59abbe56e057f20f883e por causa do MD5
5- Quando logo com esse usuário da senha invalida. <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( -->
Obs: Não fiz alteração nenhuma nos Domínios e nem nos controles
espero ter sido claro <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> ..valeu
pessoal acho que é isso que ta acontecendo vou bater a cabeça aqui se alguém tiver alguma sujestão vai ser bem vinda...<!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
<!-- m --><a class="postlink" href="http://n4.nabble.com/Acegi-not-working-td1385836.html">http://n4.nabble.com/Acegi-not-working-td1385836.html</a><!-- m -->
Pessoal uma coisa interessante se eu rodar em memória funciona apenas quando mando para o mysql que ocorre o erro
Resolvido...Troquei meu jar JDBC, acreditei que a versão do jar não estava batendo com a do mysql ai funcionou...[]'s