j_security_check com método GET

Olá pessoal,

na minha aplicação, clica num link enviado por email para acessar diretamente a sua página principal sem precisar da tela de login.

o problema é como será feito esse link, visto que terá que se logar via GET.

estou tentando fazer o seguinte:
http://localhost:8080/app/j_security_check?j_username=User&j_password=123
mas não funciona.

Alguma sugestão?

tu pode criar um form com campos username e password hidden, no seu link você dispara uma funcção javascript que dá o submit nesse form.

deve funcionar, via post hehehe

[quote=valdir.mendes]Olá pessoal,

na minha aplicação, clica num link enviado por email para acessar diretamente a sua página principal sem precisar da tela de login.

o problema é como será feito esse link, visto que terá que se logar via GET.

estou tentando fazer o seguinte:
http://localhost:8080/app/j_security_check?j_username=User&j_password=123
mas não funciona.

Alguma sugestão?[/quote]

A “j_security_check” é uma pseudo-página, que aparece apenas quando vc. tenta acessar um recurso protegido. Tentar acessá-la diretamente sempre acaba em confusão.

A solução é um pouco mais enrolada.

  1. NUNCA, mas NUNCA mesmo mande o usuário e senha em claro, ainda mais por e-mail !!! (nem para recuperar senha isto vale)

  2. Gere uma URL com um GUID ou outro identificador “difícil”. Note que isto deve estar casado com um cookie que não seja de sessão presente no browser do usuário (assim, o usuário/senha no caso passam a ser o cookie e a URL). Note que isto só é aceitável para aplicações de baixo risco…

  3. A URL deve ser mapeada para um servlet com acesso público. Ao cair no doGet, o servlet valida o cookie e GUID e usa-os para recuperar usuário e senha de algum lugar. Salve estas informações na sessão e, em seguida , mande um redirect para uma outro recurso, desta vez protegido via no web.xml

  4. Altere a página de logon de forma que os campos com j_username/j_password sejam preenchidos com o usuário/senha presentes na sessão em campos hidden. Use javascript para o submit automático. Coloque um texto do tipo “efetuando logon. Caso vc. não seja redirecionado em 5 segundos, clique aqui”. Isto resolve para os bloqueios de javascript mais comuns. o “aqui” é o botão que faz o submit dos campos hidden

  5. Com sorte, a página final em que o usuário irá aportar será aquela que vc. queria passar diretamente.

Bom, pensei que existisse uma forma de fazer o commit() do Login automaticamente pela api.

Mas essa solução eu gostei, apesar de fazer uma poguizinha javascript hehhe

Obrigado pela ajuda!