Search in sources :

Example 1 with LoginEvent

use of com.dappermoose.stsimplefinance.data.LoginEvent in project spring-thymeleaf-simplefinance by heitkergm.

the class AuthenticationListener method onApplicationEvent.

@Override
@Transactional
public void onApplicationEvent(final AbstractAuthenticationEvent e) {
    LOG.debug("login event + " + e.toString());
    if (!(e instanceof AuthenticationSuccessEvent || e instanceof AbstractAuthenticationFailureEvent)) {
        return;
    }
    Object obj = e.getAuthentication().getPrincipal();
    String userName;
    if (obj instanceof String) {
        userName = (String) obj;
    } else if (obj instanceof UserDetails) {
        userName = ((UserDetails) obj).getUsername();
    } else {
        userName = "";
    }
    List<LoginUser> luser = loginUserRepository.findByUserName(userName);
    if (luser.size() <= 0) {
        return;
    }
    LoginUser user = luser.get(0);
    LoginEvent loginEvent = new LoginEvent();
    loginEvent.setUser(user);
    if (e instanceof AbstractAuthenticationFailureEvent) {
        loginEvent.setSuccess(YesNoEnum.NO);
    } else {
        loginEvent.setSuccess(YesNoEnum.YES);
    }
    loginEventRepository.save(loginEvent);
}
Also used : UserDetails(org.springframework.security.core.userdetails.UserDetails) LoginEvent(com.dappermoose.stsimplefinance.data.LoginEvent) AuthenticationSuccessEvent(org.springframework.security.authentication.event.AuthenticationSuccessEvent) LoginUser(com.dappermoose.stsimplefinance.data.LoginUser) AbstractAuthenticationFailureEvent(org.springframework.security.authentication.event.AbstractAuthenticationFailureEvent) Transactional(javax.transaction.Transactional)

Aggregations

LoginEvent (com.dappermoose.stsimplefinance.data.LoginEvent)1 LoginUser (com.dappermoose.stsimplefinance.data.LoginUser)1 Transactional (javax.transaction.Transactional)1 AbstractAuthenticationFailureEvent (org.springframework.security.authentication.event.AbstractAuthenticationFailureEvent)1 AuthenticationSuccessEvent (org.springframework.security.authentication.event.AuthenticationSuccessEvent)1 UserDetails (org.springframework.security.core.userdetails.UserDetails)1