ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[3天速成Spring Security] - 03 HTTP请求与响应

2021-10-06 23:02:11  阅读:123  来源: 互联网

标签:03 http 请求 Spring String user Basic HTTP name


HTTP请求

在Spring Security中的很多内容校验都是通过对HTTP请求中的数据项进行的判断

请求报文

在这里插入图片描述

基于RestClient插件理解请求报文

RestClient是VSCode的API测试插件,创建后缀为.http的文件则会被VSCode识别成Rest Client的工具文件

Get请求测试

构建Get请求

@GetMapping("/01")
public String firstApi() {
	return "Hello World";
}

测试Get请求

  • 直接编写Get请求头内容并发送请求
GET http://localhost:8080/test/01
  • 由于没有认证,Response Status为401
  • 使用Basic Auth的方式添加请求头【注意:Basic后面需要跟base64编码的用户名和密码,但是Rest Client为了方便允许使用user + password的方式进行添加】
  • 添加后发送请求
GET http://localhost:8080/test/01
Authorization: Basic user:0baf3007-ffa6-4ce1-96ea-efbb356cf3bd
  • 请求发送成功,返回Hello World

Put请求测试

构建Put请求

@PutMapping("/02")
public String secApi(@RequestParam String name) {
	return "Hello " + name;
}

测试PUT请求

  • 直接编写Put请求头内容以及Authentication请求头并发送请求
PUT http://localhost:8080/test/02?name=Jack
Authorization: Basic user a08a4450-a0ff-4bdb-9b96-d31835ff2b40
  • 发现请求始终提示403
  • 开启对于security的debug日志级别
logging.level.org.springframework.security.web=DEBUG
  • 发现日志中错误:Invalid CSRF token found for http://localhost:8080/test/02?name=Jack
  • 添加security配置代码,预先关闭csrf filter
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf(AbstractHttpConfigurer::disable)
                .httpBasic(Customizer.withDefaults())
                .formLogin(form -> form.loginPage("/"));
    }
}
  • 再次发送请求,返回Hello Jack

Post请求测试

构建Post请求

@PostMapping("/03")
public String thiApi(@RequestBody User user) {
	return "Hello " + user.getName();
}

@Data
private class User {
	String name;
	String gender;
}

测试Post请求

  • 直接编写Post请求头内容,Authentication请求头以及请求体并发送请求
POST http://localhost:8080/test/03
Authorization: Basic user 5c11e9f9-c9d8-4322-8e5e-03fc36d91e6e

{
    "name": "Susan",
    "gender": "Man"
}
  • 请求返回415 Unsupported Media Type
  • 添加Content-Type请求头
POST http://localhost:8080/test/03
Authorization: Basic user 5c11e9f9-c9d8-4322-8e5e-03fc36d91e6e
Content-Type: application/json

{
    "name": "Susan",
    "gender": "Man"
}
  • 再次发送请求,返回Hello Susan

HTTP响应

响应报文

在这里插入图片描述

常用认证/授权相关状态码

  • 401 - Unauthorized 未认证
  • 403 - Forbidden 未授权

Http Basic Auth认证流程

在这里插入图片描述

标签:03,http,请求,Spring,String,user,Basic,HTTP,name
来源: https://blog.csdn.net/qq_34829447/article/details/120622522

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有