SpringSecurity入门

1.1 Spring Security简介

  Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于 Spring的应用程序的实际标准。Spring Security是一个框架,致力于为Java应用程序提供身份验证和授 权。与所有Spring项目一样,Spring Security的真正强大之处在于可以轻松扩展以满足自定义要求.

1.2 Spring Security框架功能简介

  1. 认证: 用户登录, 解决的是"你是谁?"

  2. 授权: 判断用户拥有什么权限,可以访问什么资源. 解决的是"你能干什么?"

  3. 安全防护,防止跨站请求,session 攻击等

1.3 SpringSecurity应用场景

  1. 用户登录, 传统基于web开发的项目的登录功能.

  2. 用户授权, 在系统中用户拥有哪些操作权限

  3. 集成cas,做单点登录,即多个系统只需登录一次,无需重复登录  

  4.集成oauth2 ,做登录授权, 可以用于app登录和第三方登录(QQ,微信等), 也可以实现cas的功能.

  5. 单一登录, 一个账号只能在同一时间只能在一个地方进行登录, 如果在其他地方进行第二次登录,则 剔除之前登录操作

1.4 SpringSecurity入门案例

1. 创建Spring Boot 工程

  

  

  

Spring Boot版本选择2.7.0 , 并选中Spring Web 模块。点击next,项目创建成功。

2. 编写Controller

package com.grouphy.controller;

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

/**
 * Created With IntelliJ IDEA.
 * Descriptions:
 * User:Mr.Du
 * Date:2022/6/17
 * Time:9:44
 */
@RestController
public class TestController {

    @RequestMapping("/test")
    public String test(){
        return "Nice, Security";
    }
}

3. 启动项目,访问:  http://localhost:8080/test

 

4. 添加SpringSecurity依赖

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

5. 重新访问 http://localhost:8080/test

 

我们建成的项目没有任何页面,怎么会出现这个登录表单,其实,这是SpringSecurity默认的表单,当你引入它的依赖后,启动项目,不管你的url输入是什么,它都会跳转到这个页面,只有当你输入正确的用户名和密码,他才会跳转到你输入的url页面。那么它的用户名和密码又是什么呢?我们先来看一下他这个网页源代码,如下:

 

这里有三点需要大家注意下:

  1. 表单的提交方式和路径: post /login

  2. input输入项的name值: username password

  3. 隐藏域input的name: 值为: _csrf value值为 63370291-a3ad-4d62-b956-f0d73807ff3e

其实SpringBoot已经提供了默认用户名user,密码在项目启动时随机生成,如图:

 

输入用户名和密码登录成功,成功输出内容

大功告成!!!

 

posted @ 2022-06-17 14:50  码到成功hy  阅读(100)  评论(0编辑  收藏  举报
获取

hahah

name age option