文档章节

Spring AbstractAuthenticationEvent 详解

lxbzmy
 lxbzmy
发布于 2014/10/09 11:47
字数 420
阅读 211
收藏 0

org.springframework.security.authentication.event.AbstractAuthenticationEvent


summary

先来看一段 Type  hierarchy

  • java.lang.Object

    • java.util.EventObject

      • org.springframework.context.ApplicationEvent

        • AbstractAuthenticationEvent(org.springframework.security.authentication.event)

          • AbstractAuthenticationFailureEvent,

            • AuthenticationFailureBadCredentialsEvent, 

            • AuthenticationFailureCredentialsExpiredEvent, 

            • AuthenticationFailureDisabledEvent,

            • AuthenticationFailureExpiredEvent,

            • AuthenticationFailureLockedEvent,

            • AuthenticationFailureProviderNotFoundEvent,

            • AuthenticationFailureProxyUntrustedEvent, 

            • AuthenticationFailureServiceExceptionEvent

          • AuthenticationSuccessEvent, 

          • AuthenticationSwitchUserEvent, 

          • InteractiveAuthenticationSuccessEvent, 

          • SessionFixationProtectionEvent


Spring Security 继承的Spring Framework的优良品质,设计了多种的扩展点,因此我们可以使用事件监听器来获知验证和授权事件,从而做一些日志记录操作。


import org.springframework.context.ApplicationListener;
import org.springframework.security.authentication.event.AbstractAuthenticationEvent;
public class AuthenticationEventLogger implements
        ApplicationListener<AbstractAuthenticationEvent> {
    @Override
    public void onApplicationEvent(AbstractAuthenticationEvent event) {
        System.out.println(event);
    }
}


事件详解


不同的事件类型代表了不同的验证情况,从事件的设计上也能够看出Spring Security在设计时考虑周到。


org.springframework.security.authentication.event.AbstractAuthenticationEvent是共同的基础类型,代表了验证授权事件用于和其他种类的事件区别开来。


AbstractAuthenticationFailureEvent 在验证过程中发生异常会触发此类事件(抽象类型),

AuthenticationFailureBadCredentialsEvent(提供的凭据是错误的,用户名或者密码错误) 

AuthenticationFailureCredentialsExpiredEvent(验证通过了,但是密码已经过期) 

AuthenticationFailureDisabledEvent(验证过了但是账户被禁用)

AuthenticationFailureExpiredEvent(账户过期),

AuthenticationFailureLockedEvent(账户被锁定),

AuthenticationFailureProviderNotFoundEvent(配置错误,没有合适的AuthenticationProvider来处理登录验证)

AuthenticationFailureProxyUntrustedEvent(代理不受信任,用于Oauth、CAS这类三方验证的情形,多属于配置错误), 

AuthenticationFailureServiceExceptionEvent(其他任何在AuthenticationManager中发生的异常都会被封装成此类,表示服务器500错误)

AuthenticationSuccessEvent(用户通过输入用户名和密码登录成功), 

AuthenticationSwitchUserEvent(通过切换用户的手段来登录), 

InteractiveAuthenticationSuccessEvent,(同样是登录成功,但表示通过自动交互的手段来登录成功,比如cookie自动登录) 

SessionFixationProtectionEvent(当发生session fixation 攻击时触发的事件)


© 著作权归作者所有

共有 人打赏支持
lxbzmy
粉丝 40
博文 39
码字总数 12963
作品 0
太原
架构师
私信 提问
☆聊聊Spring系列_Index

Spring经典详解 Spring事务机制详解 Spring配置事务五种方式 关于Spring加载classpath与classpath*的过程剖析 深入分析Spring 与 Spring MVC容器 Spring系列文章 【第1章 Spring概述与结构】...

陶邦仁
2015/12/09
0
0
跟我学Spring Cloud(Finchley版)-18-Zuul深入

本节探讨Zuul的高级特性。 TIPS: 笔者已经写过很多Zuul相关的文章,对于已经写过的内容,就不再啰嗦一遍了,直接贴地址吧。 过滤器详解 过滤器是Zuul的核心,Zuul大多功能都是基于过滤器实现...

周立_ITMuch
01/29
0
0
spring-data-elasticsearch 基本案例详解(三)

『 风云说:能分享自己职位的知识的领导是个好领导。 』 运行环境:JDK 7 或 8,Maven 3.0+ 技术栈:SpringBoot 1.5+, Spring Data Elasticsearch 1.5+ ,ElasticSearch 2.3.2 本文提纲 一、...

夜黑人模糊灬
2018/05/13
0
0
Spring.xml文件详解 Copy from rnern.com

Spring的applicationContext.xml文件详解

JAVA__
2012/05/16
0
0
Spring 你们都通了吗?

Spring 的Web这块,那么多,最近弄个MVC,各种包,配置文件。也只是弄了MVC,弄清楚了,花了一天。确实晓得了原理后,再配置好,挺好用的。Spring 的Web那块,框架那么多,重点推荐点呗。ORM...

滴滴丶哔哔
2011/11/30
1K
14

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot入门系列HelloWorld

根据咱们程序员学习的惯例,学习一门新技术都是从HelloWorld开始的。 感觉编程是一件非常富有意义的事情,程序员也是一群可爱的人,渴望被关怀和关注,因为我们总在和世界say Hi. 好了进入正...

凌宇之蓝
30分钟前
0
0
Linux之《荒岛余生》(二)CPU篇

温馨提示,动图已压缩,流量党放心查看。CPU方面内容不多,我们顺便学点命令。本篇是《荒岛余生》系列第二篇,垂直观测CPU。其余参见: Linux之《荒岛余生》(一)准备篇 如何做一个CPU cpu...

mskk
34分钟前
0
0
Java基础教程,第十讲,继承

前面我们学习了类和对象的概念,学习了方法的重载,今天我们将学习面向对象另一个重要特性,继承(inheritance)。利用继承,我们可以基于一个已经存在的类狗仔一个新的类,继承已经存在的类...

程序员补给栈
37分钟前
0
0
nginx的日志

nginx的日志包括错误日志和访问日志,分别使用不同的指令来定义其输出位置和相应的级别。 下面介绍其各自的用途。 错误日志 nginx提供了error_log指令来指定错误日志的输出文件和级别。 指令...

xtof
今天
3
0
【转】ubuntu18.04系统安装完之后显示未发现WiFi适配器【拯救者y7000亲测可用】

解决过程如下: 标题要大才醒目。 第一,插网线: 确保能通过网线连上网,通过路由器连还是直接接口连都没事,因为我们需要联网去下载些驱动以及更新。 第二,更改软件源: 打开“设置”,选...

Aomo
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部