spring security自定义登录与注销

一、spring boot框架下配置

A:登录配置(在WebSecurityConfigurerAdpater实现类的configure()方法中配置)

spring security自定义登录与注销_第1张图片

B:登录成功配置

默认情况下,用户登录成功后由于RequestCache中保存着登录之前的url,将自动跳转到该页面;如果用户需要在登录成功后执

行一些操作,就需要自定义登录成功操作;

A、默认的成功处理类:SavedRequestAwareAuthenticationSuccessHandler

B、自定义处理:

实现AuthenticationSuccessHandler接口,并复写onAnthenticationSuccesss()方法;

要使得自定义登录成功认证生效,需要在WebSecurityConfigurerAdapter接口实现类的configure()方法中添加

successHandler(自定义接口实现类对象)

C:登录失败配置

默认情况下,用户登录失败后会自动跳转到登录页;如果用户需要在登录失败后执行一些操作,就需要自定义登录失败操作

A、默认的失败处理类:SimpleUrlAuthenticationFailureHandler 

B、自定义处理:

实现AnthenticationFailureHandler接口,并复写onAuthenticationFailure()方法;

要使得自定义登录成功认证生效,需要在WebSecurityConfigurerAdapter接口实现类的configure()方法中添加

failureHandler(自定义接口实现类对象)

D:注销配置示例(在WebSecurityConfigurerAdapter实现类的configure()方法中配置)

spring security自定义登录与注销_第2张图片

具体参考本人写的认证服务器:https://github.com/zhongss404/authserver

二、spring mvc框架下的配置

A:登录基本配置流程:

a、首先专门为spring security建立一个配置文件(xml)【这里定义为springSecurity.xml

(注意:配置文件需要引入spring security的NameSpace)

b、在 springSecurity.xml中 定义哪些请求有哪些权限才能通过认证;

spring security自定义登录与注销_第3张图片

c、在 springSecurity.xml中 定义AuthenticationManager进行认证;

spring security自定义登录与注销_第4张图片

d、在 web.xml 中通过将springSecurity.xml 指定为Spring的初始配置文件,告诉spring要加载这个文件;

spring security自定义登录与注销_第5张图片

e、在 web.xml 中定义一个filter,用来拦截需要交给Spring Security处理的请求;(注意:该filter一定要定义在其他拦截请求

之前)

spring security自定义登录与注销_第6张图片

B:自定义登录页、登录成功、登录失败(在上述配置基础上)

1、自定义登录页

spring security自定义登录与注销_第7张图片

当指定了http元素的security属性为none时,表示其对应pattern的filter链为空;

2、登录成功 --- 通过 authentication-success-handler-ref 指定

authentication-success-handler-ref 对应一个 AuthencticationSuccessHandler 实现类的引用

3、登录失败 --- 通过 authentication-failure-handler-ref 指定

authentication-failure-handler-ref 对应一个 AuthencticationFailureHandler 实现类的引用

spring security自定义登录与注销_第8张图片

你可能感兴趣的:(spring,security)