如何用Postman向Spring Security保护的Spring Boot Rest API传登录信息
在Postman中传递Spring Security登录信息测试REST API
你好!针对你用Spring Boot开发REST API,配置了Spring Security限制仅登录用户访问,但不清楚如何用Postman传递登录信息的问题,我分几种常见认证场景给你说明:
一、HTTP Basic 认证(快速测试首选)
如果你的项目用的是HTTP Basic认证(测试阶段或小型项目常用),操作非常简单:
- 打开Postman,新建请求并填入你的API地址(比如
GET /order) - 切换到Authorization标签页,认证类型选择Basic Auth
- 在
Username和Password输入框中填写你的登录账号密码,Postman会自动将账号密码转成Base64编码,放到请求头的Authorization字段(格式为Basic <base64编码串>) - 直接发送请求即可
要是你想手动添加请求头,也可以自行对用户名:密码做Base64编码,然后在Headers标签里添加一条:Authorization: Basic 编码后的字符串
二、Token认证(REST API最常用,比如JWT)
如果你的项目用的是JWT这类Token认证,需要先获取Token再携带访问:
第一步:获取登录Token
首先你需要一个允许匿名访问的登录接口(比如POST /login),记得在Security配置里把这个接口放开:
@Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/login").permitAll() // 开放登录接口 .antMatchers(HttpMethod.GET, "/", "/order/**").authenticated() // 其他配置... .and() .exceptionHandling().accessDeniedHandler(accessDeniedHandler); }
然后在Postman中:
- 新建POST请求,地址填写
/login - 切换到Body标签,选择
raw并设置格式为JSON,传入用户名密码:
{ "username": "你的用户名", "password": "你的密码" }
- 发送请求,后端会返回一个Token(通常是
access_token字段),复制这个Token备用。
第二步:携带Token访问API
- 打开你要测试的API请求(比如
GET /order/1) - 切换到Headers标签,添加一条请求头:
- 键:
Authorization - 值:
Bearer 刚才复制的Token(注意Bearer后面有一个空格!)
- 键:
- 发送请求即可正常访问受保护的API。
三、表单登录(不推荐REST API使用,仅作补充)
如果你的Security配置用的是默认表单登录(一般为网页端设计),REST API使用这种方式会比较繁琐,需要模拟表单提交并保存Cookie:
- 先发送POST请求到
/login,Body选择form-data,填写username和password两个字段 - 登录成功后,Postman会自动保存Session Cookie
- 后续发送API请求时,Postman会自动带上Cookie,从而通过认证
不过这种方式不符合REST API的无状态设计,还是优先选择上面的Basic或Token认证。
针对你的配置补充
从你给出的部分代码来看,你继承了WebSecurityConfigurerAdapter,记得根据认证方式补全配置:
- 如果使用Basic认证,需要添加
http.httpBasic(); - 如果使用JWT,需要配置对应的过滤器来解析Token
常见坑点排查
- 遇到401 Unauthorized:先检查请求头的认证信息是否正确,Token是否过期,账号密码是否匹配
- 遇到403 Forbidden:检查用户是否拥有访问该API的权限,或是Security配置中的权限规则是否有误
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

