2017-01-06 8 views
2

こんにちは!パスワードを送信する方法SpringのREST APIで休憩中の文字列?

私はSpring BootのSpring Securityで基本的なユーザー認証を行いました。 私はアプリケーションの最初にいくつかのデフォルトユーザーを追加していますが、実行時に新しいユーザーを作成する方法も実装する必要があります。そこで、新しいRestControler呼び出しを作成して、Spring Securityに新しいユーザーを追加したいと考えています。

明確にするために、私は実際に電話でリクエストパラメータを送信する部分を除いて、すべてがわかっていると思います。

だから、私の質問は:

新しいユーザーを作成するときに、残りのAPI呼び出しでパスワードを送信するための最良/最も安全な方法は何ですか? URL呼び出しが簡単に傍受することができますよう

私は@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); 
} 

はたぶんヘッダーでそれらを送信しますか?

これは初めてのことですが、このような状況では何が一般的なことであるかについて実際にアドバイスを利用することができます。乾杯!

答えて

2

PUTは冪等方法であるため、PUTの代わりにPOSTメソッドを使用する必要があります。

パスワードを送信する最も安全な方法は、@RequestBodyです。あなたはこのようなメソッドを使用することができます:

{"username" : "user", "password" : "encoded_password"} 
+0

おかげで、私はそれを試してみます:

@RequestMapping(value = "add", method = POST) public User add(@RequestBody User user) { return us.addUser(user); } 

要求は次のようになります。また、POSTとPUTについてあなたが言ったことを覚えています。乾杯! –

関連する問題