springsecurity学习笔记-未完

目录

前言

一、概念

1.什么是springsecurity

2.对比shiro

二、开始项目

1.建立一个空项目,建立module,引入相关依赖

2.启动项目,访问项目

3.自定义密码

总结



前言

记录一下学习springsecurity的过程

开发环境:IDEA


一、概念

1.什么是springsecurity

spring提供的安全管理框架,核心功能是认证,授权

认证:验证当前用户是不是本系统注册的用户,识别具体是哪个用户

授权:通过认证的用户,需要判断是否具有权限进行某个操作

2.对比shiro

springsecurity功能更强大,shiro更容易上手应用

二、开始项目

1.建立一个空项目,建立module,引入相关依赖

new Project->Empty Project

springsecurity学习笔记-未完_第1张图片

File->new module->Spring Initializr->Maven->选择需要加入的功能->生成项目,等待依赖导入

springsecurity学习笔记-未完_第2张图片

必须选择的包括springsecurity,springweb,注意右上角选择自己想要的springboot版本,springboot版本与jdk版本要匹配,否则可能会导致其他依赖的版本混乱

springsecurity学习笔记-未完_第3张图片

附上依赖pom



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.7.14
         
    
    com.example
    springsecuritydemo
    0.0.1-SNAPSHOT
    springsecuritydemo
    Demo project for Spring Boot
    
        11
    
    
        
            org.springframework.boot
            spring-boot-starter-security
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.security
            spring-security-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


2.启动项目,访问项目

控制台输出如下,意思是自动生成了密码,如果你要在生产环境使用,应该修改配置

Using generated security password: 7bc86ae1-30a1-435c-bc59-6d894a7ae0b6

This generated password is for development use only. Your security configuration must be updated before running your application in production.

访问项目localhost:8080,以往我们访问本地项目,直接会进入首页,但这次弹出了一个登录页面

这是springsecurity自带的过滤器,验证当前用户没有登陆,自动跳转到登录页面

这个页面是通过网络下载的bootstrap页面,如果下载的有问题,那么页面展示效果可能会不太好,可以忽略

springsecurity学习笔记-未完_第4张图片

输入账号密码登录,默认账号为user,密码为刚刚控制台输出的

登陆后跳转到error页面,这并不是登录失败了,只是没有识别到登陆成功后应该跳转到哪

我们可以自己写一个接口访问,比如http://localhost:8080/index,页面输出hello world!

@RestController
public class IndexController {

    @GetMapping("/index")
    public String index() {
        return "hello world!";
    }
}

3.自定义密码

如果我们不想使用默认生成的密码,可以自己配置密码application.yml

spring:
  security:
    user:
      name: admin
      password: 1234

那么刚才我们没有配置密码的时候,默认密码是怎么生成的呢,security的User类给name和password提供了默认值

private String name = "user";
private String password = UUID.randomUUID().toString();

4.自定义登陆页面

显然我们不可能使用security提供的登陆页面


总结

你可能感兴趣的:(spring/mybatis,springsecurity)