嗨!
我使用Spring Boot的Spring Security进行了基本的用户身份验证。 我在应用程序的开头添加了一些默认用户,但我还必须实现一种在运行时创建新用户的方法。所以,我想创建一个新的RestControler调用来向Spring Security添加一个新用户。
要明确的是,我认为除了我在电话中实际发送请求参数时的部分时,我已经弄明白了。
所以,我的问题是:
在创建新用户时,在休息API呼叫中发送密码的最佳/最安全的方法是什么?
我想使用@PathVariable
不是很安全,因为可以轻松拦截网址:
@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);
}
也许在标题中发送它们?
无论如何,这是我第一次做这样的事情,并且可以真正使用有关这种情况下常见做法的建议。干杯!
答案 0 :(得分:2)
首先,您应该使用POST
方法而不是PUT
,因为PUT
是一种幂等方法。
发送密码最安全的方法是使用@RequestBody
。你可以使用这样的方法:
@RequestMapping(value = "add", method = POST)
public User add(@RequestBody User user) {
return us.addUser(user);
}
请求看起来像这样:
{"username" : "user", "password" : "encoded_password"}