Provavelmente está dando um loop infinito de redirecionamento.
O filtro que você fez é executado ao acessar qualquer action de qualquer controller. Você tem que excluir do filtro a action para qual você está redirecionando.
Oi Alex,
este curso provavelmente foi o que eu fiz para a DevMedia. Naquele caso, a situação era a criação de um filtro que só permitisse a usuários autenticados acessar o conteúdo restante do site.
Como o parametro de sessao no seu codigo nao foi definido, sempre redireciona para o freako (que é um dos meus blogs inclusive :) )
Já escrevi a respeito no meu blog. Da uma olhada no link abaixo:
http://www.itexto.net/devkico/?p=29
Entao henrique e o curso que vc fez para devMedia mesmo, fez como esta la no curso define o url:'/freako/' como vc tinha colocado ele deveria ir para a pagina inicial nao deveria?
coloquei mais essa parte no codigo
if (! session.usuario && !actionName.equals("login")){
redirect(url:'/freako/')
}
mais ele fica na mesma so uma pagina em branco, tentei muda o redirect para redirecionar para um outro controller e uma action mais nao foi tbm
Alex, um ponto que talvez te ajude. Naquele curso, usei se não me engano o Grails 1.0. Com certeza você está usando uma versão mais nova.
Experimente mudar a sua URL para redirect(url:"/") e me diga o resultado ok?
ela roda normal so que nao faz o filtro porque ela entra em qualquer coisa sem se logar no sistema ....
nao desculpa ele abre a aplicação com http://localhost:8080/
sem nada na frente ...
Tem como você postar aqui o código completo do seu filtro?
class AcessoFilters {
def filters = {
acesso(controller:'*', action:'*') {
before = {
if (! session.usuario && ! actionName.equals("login")){
redirect(url:'/freako/')
return false
}
return true
}
}
}
}
Faz um invert , ele vai ser utilizado em todos os controladores menos o controller login
def filters = {
acesso(controller:'login' , invert:true) {
before = {
if (! session.usuario){
redirect(url:'/freako/')
}
}