将Curl http请求发送到安全的Spring Boot应用程序

时间:2017-01-19 03:44:27

标签: spring curl spring-boot spring-security

我已经通过在依赖项中包含spring-boot-starter-security来保护Spring Boot Application(默认配置)。 我需要使用使用带有UTF-8 CharSet的Base64格式的基本授权来访问它。 我是春天安全的新手,不知道怎么做!请求应该是这样的:

curl -H "Content-Type: application/json" -X POST -d '{"XXX":["XXX", "XXX", "XXX", "XXX", "XXX", "XXX"]}'  -H "Authorization: Basic b3B0dXM6Y2FuZGlkYXRlcw==" http://localhost:8080/XXX-api/search

我甚至试过这个:

 curl -H "Content-Type: application/json" -H 'Authorization:Basic user:0bf582f
0-6988-42ee-9f31-d993cd83ad7b' -X POST -d '{"XXX":["XXX", "XXX", "XXX
", "XXX", "XXX", "XXX"]}'    http://localhost:8080/XXX-api/search

但得到了这个错误:

{"timestamp":1484797035123,"status":401,"error":"Unauthorized","message":"Failed
 to decode basic authentication token","path":"/XXX-api/search"}

有人可以帮助我并告诉我如何生成卷曲请求的授权部分吗?

注意:使用浏览器发送请求时,它会要求我输入用户名和密码,然后工作正常!

提前致谢!

1 个答案:

答案 0 :(得分:1)

你应该base64编码username:password,例如user:0bf582f0-6988-42ee-9f31-d993cd83ad7bbase 64 online

Base64编码:用户:0bf582f0-6988-42ee-9f31-d993cd83ad7b
结果:dXNlcjowYmY1ODJmMC02OTg4LTQyZWUtOWYzMS1kOTkzY2Q4M2FkN2I

然后发送带有编码用户名密码

的请求

curl -H "Content-Type: application/json" -H 'Authorization:Basic dXNlcjowYmY1ODJmMC02OTg4LTQyZWUtOWYzMS1kOTkzY2Q4M2FkN2I' -X POST -d '{"XXX":["XXX", "XXX", "XXX", "XXX", "XXX", "XXX"]}'