Olá, galera.
Tenho que criptografar uma senha, no navegador, antes de enviá-la para o servidor e já sei como fazer isso utilizando JavaScript.
O problema é que estou usando PrimeFaces e minha idéia é a seguinte:
Ao clicar no botão LOGAR (<p:CommandButton>), no meu formulário de login, eu quero que seja invocado o JavaScript, a senha seja criptografada e só depois quero que os dados sejam enviados para o ManagedBean.
Isso é possível? Se sim alguém pode me dar um exemplo?
Obrigado!
vc pode usar o método onclick ou onstart:
<p:commandButton onclick=“funcaoJS();” />
[quote=felipe_gdr]vc pode usar o método onclick ou onstart:
<p:commandButton onclick=“funcaoJS();” />[/quote]
É bem simples! Valeu cara!
Mas e pra eu invocar o ManagedBean através do JavaScript?
EX: #{LoginMB.logar}
Você tem idéia de como fazer?
Opa, ainda bem que você está usando o Primefaces, pois fica fácil usando o componente <p:remoteCommand>.
você faz assim:
[code]<p:commandButton onclick=“funcaoJS();” />
<p:remoteCommand name=“chamaAction” actionListener=“actionNoJava” update=“etc…” />
[/code]
No Java:
public void actionNoJava() {
fazCoisasNoJava
}
mais ou menos assim…
Tenha em mente que não é nada seguro criptografar usando javascript (do lado do cliente). Aconselho a fazer isso no servidor mesmo.
Fiquei curioso agora, pois realmente, criptografar no javascript significa que qualquer um poderá ver seu método. Porém, se fizer no servidor, no caminho entre browser e servidor a senha fica desprotegida, né?
No javascript a pessoa pode ver seu método de criptografia, então decriptar deve ser muito fácil.
Mas até que o dado chegue ao servidor, ele fica descriptografado. Então qual seria a solução para isso??
[quote=felipe_gdr]Opa, ainda bem que você está usando o Primefaces, pois fica fácil usando o componente <p:remoteCommand>.
você faz assim:
[code]<p:commandButton onclick=“funcaoJS();” />
<p:remoteCommand name=“chamaAction” actionListener=“actionNoJava” update=“etc…” />
[/code]
No Java:
public void actionNoJava() {
fazCoisasNoJava
}
mais ou menos assim…[/quote]
É bem mais simples do que eu imaginava.
Minha última dúvida é como pegar o dado que está em um <p:oinputText> para manipulá-lo com o javaScript e depos passar esses dados para o Java?
dá pra pegar o valor do input usando jquery:
[code]var senhaDesc = $("#id_do_input").val();
var senhaCript = criptografa(senhaDesc);[/code]
e depois setar o valor no proprio input, por exemplo:
[code]$("#id_do_input").val(senhaCript);
chamaAction();[/code]
Acho que funcionaria…
[quote=felipe_gdr]dá pra pegar o valor do input usando jquery:
[code]var senhaDesc = $("#id_do_input").val();
var senhaCript = criptografa(senhaDesc);[/code]
e depois setar o valor no proprio input, por exemplo:
[code]$("#id_do_input").val(senhaCript);
chamaAction();[/code]
Acho que funcionaria…[/quote]
Obrigado! Vou testar e qualquer coisa eu posto aqui
Valeu