下面列出了怎么用org.springframework.security.authentication.event.AuthenticationFailureDisabledEvent的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void onApplicationEvent(AbstractAuthenticationEvent event) {
try {
if (event instanceof AuthenticationSuccessEvent) {
process((AuthenticationSuccessEvent) event);
} else if (event instanceof AuthenticationFailureBadCredentialsEvent) {
process((AuthenticationFailureBadCredentialsEvent) event);
} else if (event instanceof AuthenticationFailureDisabledEvent) {
process((AuthenticationFailureDisabledEvent) event);
}
// igonre all other events
} catch (Exception e) {
logger.error("Exception in Spring Event Listener.", e);
}
}
protected void process(AuthenticationFailureDisabledEvent authFailEvent) {
Authentication auth = authFailEvent.getAuthentication();
WebAuthenticationDetails details = (WebAuthenticationDetails) auth
.getDetails();
String remoteAddress = details != null ? details.getRemoteAddress()
: "";
String sessionId = details != null ? details.getSessionId() : "";
logger.info("Login Unsuccessful:" + auth.getName() + " | Ip Address:"
+ remoteAddress);
sessionMgr.processFailureLogin(XXAuthSession.AUTH_STATUS_DISABLED,
XXAuthSession.AUTH_TYPE_PASSWORD, auth.getName(),
remoteAddress, sessionId);
}
public void onApplicationEvent(ApplicationEvent event) {
try {
if (event instanceof InteractiveAuthenticationSuccessEvent) {
this.logLoginSuccess(event);
}
if (event instanceof AuthenticationFailureBadCredentialsEvent) {
this.logBadCredential(event);
}
if (event instanceof AuthenticationFailureLockedEvent) {
this.logLocked(event);
}
if (event instanceof AuthenticationFailureDisabledEvent) {
this.logDisabled(event);
}
if (event instanceof AuthenticationFailureExpiredEvent) {
this.logAccountExpired(event);
}
if (event instanceof AuthenticationFailureCredentialsExpiredEvent) {
this.logCredentialExpired(event);
}
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
}
}
public void logDisabled(ApplicationEvent event) throws Exception {
AuthenticationFailureDisabledEvent authenticationFailureDisabledEvent = (AuthenticationFailureDisabledEvent) event;
Authentication authentication = authenticationFailureDisabledEvent
.getAuthentication();
logger.info("logDisabled : {}", authentication);
String tenantId = this.getTenantId(authentication);
Object principal = authentication.getPrincipal();
String userId = null;
if (principal instanceof SpringSecurityUserAuth) {
userId = ((SpringSecurityUserAuth) principal).getId();
} else {
userId = authentication.getName();
}
AuditDTO auditDto = new AuditDTO();
auditDto.setUserId(userId);
auditDto.setAuditTime(new Date());
auditDto.setAction("login");
auditDto.setResult("failure");
auditDto.setApplication("lemon");
auditDto.setClient(getUserIp(authentication));
auditDto.setServer(InetAddress.getLocalHost().getHostAddress());
auditDto.setDescription(authenticationFailureDisabledEvent
.getException().getMessage());
auditDto.setTenantId(tenantId);
auditConnector.log(auditDto);
ctx.publishEvent(new LoginEvent(authentication, userId, this
.getSessionId(authentication), "disabled", "default", tenantId));
}