Pergunta

Eu estou tentando construir uma lógica de controle que depende da página gsp atual para chamar uma ação, há uma tag ou um método de sessão que eu posso usar para identificar a página gsp atual

Eu quero restringir o acesso a todos os GSPs exceto singup e login, por isso, se um usuário abrir qualquer outro gsp ele será redirecionado para a página de inscrição e ele também será capaz de navegar até a página de login.

A lógica que eu estou tentando implementar é como isso se CURRENT_PAGE é login.gsp ou singup.gsp em seguida, fazer mais nada redirecionamento para inscrição // onde o usuário pode navegar para página de login sem problemas demasiado

E eu quero adicionar essa lógica no layout principal por isso será implementado através de todo o domínio de aplicação.

Eu estou querendo saber se existe uma maneira alternativa de fazer isso usando RequestmapController ou urlMappings?

Qualquer pessoa com experiência em SpringMVC será capaz de ajuda como Grails é construído em cima SpringMVC, que por sua vez é construído em cima do quadro servlet padrão!

Nota: eu estou usando Acegi Plugin

Observação: Como pode a aplicação ser SEO-friendly (. I indexação do Google) com este tipo de mecanismo de segurança implementado?

Foi útil?

Solução

Editar : Desculpe, eu não entendi sua pergunta. Eu pensei que você estava procurando uma alternativa para Requestmaps. É por isso que originalmente sugeriu fixar os controladores com anotações.

Se você quiser usar Requestmaps você poderia fazer o seguinte:

  1. Criar um novo Requestmap parecida com esta:
    URL padrão = /login/**
    Role = IS_AUTHENTICATED_ANONYMOUSLY

  2. Para restringir o acesso ao resto do site criar outra entrada requestmap que combina todas as urls:
    URL padrão = /*/**
    Role = ROLE_USER (você pode usar qualquer outro papel que quiser)

meios IS_AUTHENTICATED_ANONYMOUSLY que qualquer pessoa pode acessar a primeira regra URLs.The combinado é mais específico e, portanto, deve substituir o segundo e mais regra geral.

Você pode olhar para AcegiSecurity Plugin - Protegendo URLs para mais informações .

No que diz respeito SEO do site. motores de busca AFAIK pode sites não acesso que autenticação necessidade. É por isso que sites como Experts Exchange utilização sly truques obter indexadas pelo Google.

Você pode optar por dar aos usuários anônimos acesso de leitura, mas exige um login para a escrita (como SO faz). Isso permitiria que o seu site seja indexado pelo motor de busca robôs.

Espero que isso ajude!

Outras dicas

Você deve ler esta: link de texto

E o tutorial usando Acegi plugin: link de texto

A última é a maneira que eu iria. Ele permite que você papéis de configuração e "páginas" seguras e URLs por papel. Ele também inclui uma maneira de criar usuários e atribuir-lhes papéis.

Para instalar o Acegi Grails plugin, faça um: grails install-plugin acegi

Você precisa do plug-in de segurança da Primavera. A melhor maneira de fazer isso é não dentro de seus GSPs mas usando um filtro em todas as solicitações da web. Isso vai dar-lhe a Requestmaps e urlMappings GrailsNewbie mencionado.

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