Spring SecurityでSpringMVCにアプリケーションがあります。春のセキュリティXML構成ファイルでは、<csrf/>
を使用してcsrfを有効にします。フォームでリンクするためにcsrfトークンを追加するとhtmlでの表示が正しく動作するようになりましたが、今はコントローラを追加して休憩通信をしたいと思っています。コントローラは、次のようになります。残りのコントローラを備えたSpringMVC - リクエストメソッド 'POST'はサポートされていません
@Controller
public class RestControllerTest {
@RequestMapping(value = "/rest", method = RequestMethod.POST, produces = "application/json")
@ResponseStatus(value = HttpStatus.OK)
public @ResponseBody void setUser(@RequestBody User user){
System.out.println("Witaj " + user.getFirstname() + "!");
}
}
私は、ユーザー(使用して郵便配達)とJSONを送信しようとすると:
{
"firstname": "name",
"lastname": "name"
}
私は郵便配達で404の見つからない状態を取得し、STSでWARN : org.springframework.web.servlet.PageNotFound - Request method 'POST' not supported
。私はcsrfトークンを使用しなければならないことを知っていますが、私はこれを行う方法がわかりません。
アプリケーションは正常に展開されていますか?このデータを投稿しようとしている完全なURLは何ですか? –
はい、アプリケーションは正常に動作します。ビューを返すコントローラはすべて正常に動作します。私はcsrfを無効にすると、私は郵便配達員を使ってjsonユーザーを送ることができます。しかし、csrfを有効にすると、残念なことに問題の魔法のポスト方法があります。 – lukhol
csrfトークンの場合:https://stackoverflow.com/questions/27182701/how-do-i-send-spring-csrf-token-from-postman-rest-client 説明した問題はありませんトークンの不足があなたに403を与えるので、それによって引き起こされることになります。 それはコントローラ全体ですか?あなたは、クラスのプレフィックスリクエストマッピングを持っていますか? 編集 - あなたの応答を見ただけです。したがって、csrfを無効にすると、郵便配達の同じ要求が機能しますか? – chaos