Spring Security自定义登录验证及登录返回结果

本文详细介绍了如何在Spring Security中实现自定义登录验证,包括自定义UserDetails、UserDetailsDAO、UserDetailsService以及AuthenticationProvider。同时,文章还涵盖了Spring Security的基本配置信息,以及登录、登出、权限处理的各种自定义处理器,如LocalAuthenticationSuccessHandler、LocalAuthenticationFailureHandler等。
摘要由CSDN通过智能技术生成

一.功能描述

使用Spring Boot + Spring Security实现自定义登录验证及登录登出返回结果. 
适用于前后端分离开发的项目.

如有不妥之处, 请各位大神指教.

二.处理逻辑

简单流程

验证成功
验证失败
Request登录
Spring Security
自定义LocalAuthenticationProvider
自定义LocalAuthenticationSuccessHandler
自定义LocalAuthenticationFailureHandler
验证成功
Request登出
Spring Security
自定义LocalLogoutSuccessHandler

自定义UserDetails

@javax.persistence.Entity
@org.hibernate.annotations.Table(appliesTo = "local_user_details")
public class LocalUserDetails implements java.io.Serializable, UserDetails {
   
  private static final long serialVersionUID = 1594783117560L;

  @javax.persistence.Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "[id]", nullable = false, unique = true, length = 0, precision = 20, scale = 0, columnDefinition = "bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键'")
  @ApiModelProperty(value = "主键", required = false, hidden = false, example = "主键")
  @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
  private Long id;

  @NonNull
  @Size(min = 3, max = 18)
  @Column(name = "[userid]", nullable = false, unique = false, length = 64, precision = 0, scale = 0, columnDefinition = "varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '用户索引'")
  @ApiModelProperty(value = "用户索引", required = true, hidden = false, example = "用户索引")
  @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
  private String userid = "";

  @NonNull
  @Size(min =
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值