2016-12-09 9 views
0

私はこのSpring + Thymeleafプロジェクトを持っています。このプロジェクトでは、ユーザーは質問に答えなければならず、その後はフォームに記入することができます。 このフォームページ(/finish.html)へのアクセスを制限したいので、ブラウザに直接入力することはできず、質問に正しく回答している必要があります。 私は、私は/finish.html -pageへのアクセスを許可するために何かを追加すべきだと思うページへのアクセス権制御

Long max = difficultyLevels.stream().map(d -> d.getLevel()).max(Long::compareTo).get(); 
 
     if (levelId > max) { 
 
      return "redirect:/finish"; 
 
     }

をコードのこの部分を持っています。しかし、私はそれをどうやって?

答えて

0

リダイレクトにより、新しいクライアント要求が発生します。したがって、/終点を安全に保護したい場合は、いくつかの方法があります:

ページをレンダリングする前に、/ finishコントローラでチェックできるセッションに値を置くことができます。

また、リダイレクト属性を使用して、ある種の暗号化されたトークンを渡し、仕上げコントローラーでそれをチェックすることもできます。 What are ways for pass parameters from controller after redirect in spring mvc?を参照してください。

リダイレクトの代わりにフォワードを使用することもできます。サーブレットリクエストにデータを追加するには、Spring forward with added parameters?の説明を参照してください。ブラウザのURLを変更しないため、これはうまくいかない場合があります。

関連する問題