学习SpringSecurity+SpringBoot的一点点记录 这是(一)

本文介绍了Spring Security的基本概念和核心功能,包括用户认证和授权。通过一个简单的Spring Boot项目展示了Spring Security的快速入门,包括默认用户的使用。接着,文章演示了如何自定义用户,包括在YML配置文件中添加用户以及通过配置类添加用户。最后,讨论了如何进一步定制Spring Security以满足更多需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习SpringSecurity+SpringBoot的一点点记录 这是(一)

啥是Spring-Security

Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。

SpringSecurity的核心功能:

  • 用户认证(Authentication):系统判断用户是否能登录
  • 用户授权(Authorization):系统判断用户是否有权限去做某些事情

SpringSecurity 特点:

  • Spring 技术栈的组成部分,与Spring 无缝整合。
  • 全面的权限控制,能提供完整可扩展的认证和授权支持保护
  • 专门为 Web 开发而设计。
  • 重量级,需要引入各种家族组件与依赖

SpringSecurity快速上手

首先创建一个springboot项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wyXPRmQd-1637929574232)(Untitled.assets/9450c469a32f564538b1a963fc27f55c.png)]

引入对应的jar包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

写出一个测试用的controller

@RestController
@RequestMapping
public class TestController {
    @GetMapping("hello")
    public String hello(){
        return "hello security";
    }
}       

直接启动测试一下

直接进入

localhost:8080/hello

image

进入页面直接是一个登录界面

发现我们没有用户名及密码

其实这个框架给了我们一个初始用户user

而密码在哪里呢,其实是在刚才启动的时候,出现的启动日志里面

image

password之后的就是我们的密码了

image

输入之后,咱们就成功的进来了

这样咱们是能够使用了

但是明显不够,我该怎么自定义这些用户呢

自定义用户

首先呢,咱们可以通过yml文件中添加用户的方式去添加

但是显然非常的局限,适合添加一个或者有限个管理员账号

  • application.yml文件中添加
spring:
  security:
    user:
      name: yang
      password: 1234
  • 使用配置类的方式添加

首先新建一个SecurityConfig类

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        //定义一个密码生成器
        BCryptPasswordEncoder pe = new BCryptPasswordEncoder();
        //对登录密码进行加密
        String password = pe.encode("1122");
        //通过使用身份验证器的验证
  auth.inMemoryAuthentication().passwordEncoder(pe).withUser("yang").password(password).roles("admin");
    }
}

这样我们再次启动项目访问

localhost:8080/hello

输入我们的用户信息

image

同样能够进来

这个呢先写到这吧,打字累了,哈哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值