Как проверить логин внутри бина, используя Spring Security?
Так что я'учу весну и яиспользуя JSF с PrimeFaces.
Мой вопрос:
Я хотел бы знать, как (если это возможно) аутентифицировать и авторизовать учетные данные пользователя с использованием логической функции в bean-компоненте, например так:
public boolean check() {
boolean isLoginValid = false;
if (//run something like j_spring_security_check) {
//obtain user authorizations....
isLoginValid = true;
}
return isLoginValid;
}
Причина:
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());
}
Таким образом, я могу послать логическое значение на мою кнопку через ajax, например так:
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.
}
}
Спасибо!