Filters
07/07/2011 11:50
1
To seguindo um tuttorial na java magazine de um curso de grails e fez uma claase grovy sendo um filtro no começo minha aplicação rodo normal so que quando eu clicava em um controller ela dava erro em vez de so redirecionar, so que agora com o filtro ela nem abre a pagina inicial e se tiro o filtro a aplicação abre a página inicial fica em branco a pagina

def filters = {
acesso(controller:'*', action:'*') {
before = {

if (! session.usuario){
redirect(url:'/freako/')
}

se comento o redirect a aplicação funciona normal sem ele.
Tags: filters grails


0
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.
07/07/2011 12:06


0
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


0
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


0
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?


0
ela roda normal so que nao faz o filtro porque ela entra em qualquer coisa sem se logar no sistema ....


0
nao desculpa ele abre a aplicação com http://localhost:8080/
sem nada na frente ...


0
Tem como você postar aqui o código completo do seu filtro?


0

class AcessoFilters {

def filters = {
acesso(controller:'*', action:'*') {
before = {

if (! session.usuario && ! actionName.equals("login")){
redirect(url:'/freako/')
return false
}
return true
}
}
}

}


1
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/')

}
}


0
class AcessoFilters {

def Filters = {

//porurl(url:'/Blogger/usuario/**')

//Usado em todos os controllers e todas as actions.
acesso(controller:'login' , invert:true) {

//Executado antes da action
before = {

//Se session.usuario for diferente de null
if((!session.usuario) && (!actionName.equals("login"))){
flash.message = "Para acessar essa pagina voce deve se logar antes!"
redirect(url:'/')
return false
}
return true
}
/*
* //Executado depois da action
* after = { Map model ->
* }
* //Executado após a camada de visão
* afterView = { Exception e ->
* }
*/
}
}
}


Comigo ele da um aviso de que não pode localizar página index.gsp
04/09/2012 14:02



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto