У меня есть веб-приложение, которое работает с Primefaces 6.0 - Spring Security 3.0 - Spring 4.0, HDIV и mybatis. Моя проблема с логином, когда я захожу в систему безопасности Spring с пользователем A, она успешно обрабатывается Spring и загружает информацию пользователя A. Когда я выполняю вход в систему для пользователя A, B, C и D, в то же время пружина НО успешно обрабатывает каждого пользователя, пользователь A загружает информацию пользователя A, пользователь B загружает информацию пользователя C, пользователь C загружает информацию пользователя C и пользователь D загружаетинформация о пользователе. В чем может быть проблема?
Что мне делать с приведенным ниже кодом, так это разрешить Spring Security выполнять аутентификацию. Этот метод находится в моем ManagedBean с @ViewScoped
и вызывается из .xhtml
public void procesarLogin() {
try {
Authentication requestToken = new UsernamePasswordAuthenticationToken(
getLoginForm().getJ_username(), getLoginForm().getJ_password());
try {
Authentication authenticationResponseToken
= authenticationManager.authenticate(requestToken);
SecurityContext sc = SecurityContextHolder.getContext();
sc.setAuthentication(authenticationResponseToken);
if (authenticationResponseToken.isAuthenticated()) {
sc.setAuthentication(authenticationResponseToken);
SessionUtil.setSessionAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY, sc);
authSuccessHandler.onAuthenticationSuccess(FacesUtil.getRequest(),
FacesUtil.getResponse(), authenticationResponseToken);
}
} catch (BadCredentialsException | LockedException
| DisabledException badCredentialsException) {
logger.error("error", badCredentialsException);
FacesUtil.errorMessage("Falló autenticación, verifique su usuario, contraseña o el estado de su cuenta");
} catch (ServletException | IOException ex) {
logger.error("error", ex);
java.util.logging.Logger.getLogger(LoginView.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (AuthenticationException e) {
logger.error("", e);
}
}
<p:commandButton id="btnIniciarSesion" style="width: 100%;padding-top: 5px;padding-bottom: 5px;"
class="btn btn-primary" ajax="false"
actionListener="#{loginBean.procesarLogin()}"
value="Iniciar sesión"/>