SpringSecurity基础(一)自动保护接口

重点:SpringSecurity的登录流程:

1.当一个请求到达Spring Security过滤器的时候,有一个过滤器叫做SecurityContextPersistneceFilter
2.当用户登陆成功的时候,会将当前用户登录的信息存储到SecurityContextHolder中,SecurityContextHolder的底层是一个ThreadLocal,当前用户的信息被存入到TreadLocal中,
3.在登录请求返回数据的时候,会经过SecurityContextPeristenceFilter过滤器链,在该过滤器中,会拿出来SecurityContextHolder中的用户信息,然后将之存入到HttpSession中,同时清除掉SecurityContextHolder中的用户信息。
4.接下来,当用户访问/HELLO的时候,也一样会进过SecurityContextPersistenceFilter,在该过滤器中,会从HttpSession中读取处理当前用户数据,并存入到SecurityContextHoler中,在接下来的各种认证和权限的判断中,都会从SecurityContextHolder中获取

一.简介

一个重量级的安全管理框架:
缺点

配置繁琐,(在SSM中,因为配置繁琐,所以Spring Security使用较少。但是 Spring Boot 中为Spring Security做了自动化配置,所以在Boot中,security使用非常多。)
概念繁琐

优点

安全,相对于shiro,考虑了各种网络攻击,不用开发者自己去考虑这些问题,十分安全

二.项目搭建

2.1.多加一个spring Security依赖而已

在这里插入图片描述

2.2.application.properties

application中配置一个固定的用户

spring.security.user.name=zhangsan
spring.security.user.password=123

2.3.启动SpringBoot访问登录界面(使用固定application用户)

在这里插入图片描述

这个页面spring security都帮你写好了,但是你也可以自己配置。

2.4自动接口保护(Filter默认过滤)

spring security就是只要你加入了依赖,项目里面所有的接口都被保护起来了

这个时候我们连接hello接口看看看一看

HelloController

package com.huang.springsecurity;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {

        return "hello";
    }
}

发现根本没办法连到hello界面,直接跳转到了登录界面,故此我们明白了,spring Security 只要配置了依赖就能直接对所有的接口进行保护。

3.如果不配置固定用户

在这里插入图片描述
如果不在application中配置固定用户(即没有连接数据库),spring Security中会给你一个默认的用户。
即用户名为user,密码为如上所叙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值