当前位置: 首页 > article >正文

springboot 实现用户登录身份验证

在Spring Boot中实现用户登录和身份验证,通常我们会结合Spring Security框架来完成。Spring Security是一个功能强大且高度可定制的认证和访问控制框架。以下是一个基本的步骤指南,展示如何在Spring Boot项目中实现用户登录和身份验证。

  1. 添加Spring Security依赖
    首先,在你的pom.xml(如果你使用的是Maven)中添加Spring Security的依赖项。

xml

org.springframework.boot
spring-boot-starter-security

2. 配置Spring Security
接下来,你需要配置Spring Security以定义安全策略(如哪些URL需要认证、如何存储用户信息等)。这通常是通过配置一个或多个SecurityConfigurerAdapter的子类或使用Spring Security 5中引入的基于Lambda的配置方式来完成。

以下是一个简单的配置示例,展示了如何设置HTTP安全,包括哪些URL需要认证,以及如何处理表单登录。

java
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override  
protected void configure(HttpSecurity http) throws Exception {  
    http  
        .authorizeRequests()  
            .antMatchers("/").permitAll()  // 允许所有用户访问根目录  
            .anyRequest().authenticated() // 其他所有请求都需要认证  
            .and()  
        .formLogin()  
            .loginPage("/login") // 指定登录页面  
            .permitAll()  
            .and()  
        .logout()  
            .permitAll(); // 允许所有用户注销  
}  

@Override  
protected void configure(AuthenticationManagerBuilder auth) throws Exception {  
    // 在这里配置用户信息,如内存用户存储、数据库用户存储等  
    auth  
        .inMemoryAuthentication()  
        .withUser("user").password("{noop}password").roles("USER");  
}  

}
注意:在实际应用中,你应该避免使用.inMemoryAuthentication(),而是使用更安全的用户存储方式,如数据库或LDAP。

  1. 创建用户登录页面
    Spring Security默认会在/login路径下查找登录页面。你需要创建这个页面,并确保它包含Spring Security期望的表单元素(username和password字段)。

html

Login

Login Page

4. 测试登录功能 启动你的Spring Boot应用,并尝试访问一个受保护的URL(例如,/admin),你应该会被重定向到登录页面。输入你在SecurityConfig中配置的用户名和密码,你应该能够成功登录并被重定向回原来的URL。
  1. 定制和扩展
    Spring Security非常灵活,支持多种形式的认证(如OAuth2、JWT等)和授权(如基于角色的访问控制、基于表达式的访问控制等)。你可以根据项目的需求来定制和扩展Spring Security的配置。

这只是一个基础的入门指南,希望它能帮助你开始在Spring Boot项目中实现用户登录和身份验证。


http://www.kler.cn/news/323387.html

相关文章:

  • 【NLP】daydayup 词向量训练模型word2vec
  • Maven中 <parent > 的<version>可以使用变量吗
  • Unity3D入门(四) : Android和Unity3D交互 - Unity调用Android
  • FreeRTOS 内存管理源码解析
  • 数据结构:线性表的链式表示
  • 中国农业银行——开源软件一体化管理平台
  • 《AI办公类工具表格处理系列之一——办公小浣熊》
  • 逃离陷阱:如何巧妙避免机器学习中的过拟合与欠拟合
  • 【分布式微服务云原生】K8s(Kubernetes)基本概念和使用方法
  • 项目实战总结-Kafka实战应用核心要点
  • NET 7 AOT 的使用以及+NET 与 Go 互相调用
  • C#中的排除法解决问题
  • 基于Java的停车场管理微信小程序 停车场预约系统【源码+文档+讲解】
  • HalconDotNet实现二维码识别功能详解
  • ArcGIS Desktop使用入门(三)常用工具条——拓扑(上篇:地图拓扑)
  • 过去8年,编程语言的流行度发生了哪些变化?PHP下降,Objective-C已过时
  • Vue.js 与 Flask/Django 后端配合开发实战
  • 【Matlab使用Transformer一维序列分类源程序】
  • 0基础学前端 day5
  • 基于SSM+小程序的在线课堂微信管理系统(在线课堂1)(源码+sql脚本+视频导入教程+文档)
  • Android常用C++特性之std::none_of
  • 【数据结构和算法实践-排序-快速排序】
  • 使用canvas截取web camera指定区域,并生成图片
  • 数据结构之——栈
  • 【Kubernetes】常见面试题汇总(四十)
  • EasyExcel 多个不同对象集合,导入同一个sheet中
  • gMLP:Pay Attention to MLPs--模型代码讲解
  • 数字通云平台智慧政务 login 存在登录绕过
  • Java | Leetcode Java题解之第435题无重叠区间
  • E9OA解决文档附件没有关联文档正文问题