你好!
我已经使用 Spring Boot 的 Spring Security 进行了基本的用户身份验证。
我在应用程序开始时添加了一些默认用户,但我还必须实现一种在运行时创建新用户的方法。所以,我想创建一个新的 RestControler 调用来向 Spring Security 添加一个新用户。
明确地说,我想我已经弄清楚了,除了我在通话中实际发送请求参数的部分。
所以,我的问题是:
创建新用户时,在 rest api 调用中发送密码的最佳/最安全方法是什么?
我想使用 @PathVariable
不是很安全,因为可以轻松拦截 url 调用:
@RequestMapping(value = "add/{login}/{password}", method = PUT)
public User add(@PathVariable("login") String login,
@PathVariable("password") String password) {
return us.addUser(login, password);
}
@RequestParam
也一样:@RequestMapping(value = "add", method = PUT)
public User add(@RequestParam(value = "login") String login,
@RequestParam(value = "password") String password) {
return us.addUser(login, password);
}
也许将它们发送到标题中?
无论如何,这是我第一次做这样的事情,并且可以真正使用有关在这种情况下的常见做法的建议。干杯!
最佳答案
首先,您应该使用 POST
方法而不是 PUT
, 因为 PUT
是一种幂等方法。
发送密码最安全的方式是使用 @RequestBody
.你可以使用这样的方法:
@RequestMapping(value = "add", method = POST)
public User add(@RequestBody User user) {
return us.addUser(user);
}
请求将如下所示:
{"username" : "user", "password" : "encoded_password"}
关于spring - 如何在Spring的REST Api中的rest调用中发送密码字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41509054/