¿Cómo validar un inicio de sesión dentro de un bean utilizando Spring Spring?
Así que estoy aprendiendo Spring y estoy usando JSF con PrimeFaces.
Mi pregunta:
Me gustaría saber cómo (si es posible) autenticar y autorizar las credenciales de los usuarios mediante una función booleana en un bean, como esto:
public boolean check() {
boolean isLoginValid = false;
if (//run something like j_spring_security_check) {
//obtain user authorizations....
isLoginValid = true;
}
return isLoginValid;
}
La razón:
public void doLogin() {
RequestContext context = RequestContext.getCurrentInstance();
FacesMessage msg;
boolean loggedIn;
if (check() //would use the functin here) {
loggedIn = true;
msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Welcome", usuario);
} else {
loggedIn = false;
msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Login Error", "Invalid credentials");
}
FacesContext.getCurrentInstance().addMessage(null, msg);
context.addCallbackParam("loggedIn", loggedIn);
context.addCallbackParam("authorization", this.auth #obtained in check());
}
De esta manera podría enviar el booleano a mi botón a través de ajax, de esta manera:
<p:commandButton id="loginButton" value="Login" update=":growl"
actionListener="#{loginBean.doLogin}"
oncomplete="handleLoginRequest(xhr, status, args)"/>
function handleLoginRequest(xhr, status, args) {
if(args.validationFailed || !args.loggedIn) {
jQuery('#dialog').effect("shake", { times:3 }, 100);
} else {
jQuery('#dialog').effect("shake", { times:1 }, 200);
//And redirect to the right page.
}
}
¡Gracias!