私は単純なWebアプリケーションプロジェクトをmaven spring mvcで休止状態にしています。すべてのコントローラを設定して、すべて正常に動作しています。次に、ログインしていないユーザーには制限を設けます。また、ログアウトしたら投げ捨ててください。どうすればいいですか?Spring MVCでログインする前に特定のページに移動するようにユーザーを制限する方法はありますか?
答えて
Servlet filterを使用できます。これは、Webアプリケーションを対象とするHTTP要求をインターセプトできるオブジェクトです。
サーブレットフィルタは、下の図に示すように、サーブレット、JSP、HTMLファイルまたはその他の静的コンテンツの両方の要求を傍受できます。
あなたはは、javax.servlet.Filterインタフェースを実装する必要がありサーブレットフィルタを作成するために。
public class SimpleServletFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException {
}
public void destroy() {
}
}
HTTPリクエストは、フィルタは、リクエストURIを検査リクエストパラメータとリクエストヘッダ、およびそれがブロックまたは転送したい場合はそれに基づいて決定することができたフィルタをインターセプトWebアプリケーションに到着ターゲットサーブレット、JSPなどへのリクエスト。
インターセプトを行うのはdoFilter()メソッドです。 doFilter()メソッドは文字列「blockTheRequest」に等しいかどうかを確認するために、リクエストパラメータ、MYPARAMをチェックする方法
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException {
String myParam = request.getParameter("myParam");
if(!"blockTheRequest".equals(myParam)){
filterChain.doFilter(request, response);
}
}
注意:ここではサンプル実装です。そうでない場合、要求はfilterChain.doFilter()メソッドを呼び出すことによって要求のターゲットに転送されます。このメソッドが呼び出されない場合、要求は転送されずにブロックされます。
リクエストパラメータmyParamが "blockTheRequest"に等しい場合、上のサーブレットフィルタはリクエストを無視します。別の応答をブラウザに書き戻すこともできます。サーブレットの内部と同じように、ServletResponseオブジェクトを使用してください。
Webアプリケーションのweb.xmlファイルでサーブレットフィルタを設定してから動作させる必要があります。
<filter>
<filter-name>myFilter</filter-name>
<filter-class>servlets.SimpleServletFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>*.simple</url-pattern>
</filter-mapping>
この構成では、URLが.simpleで終わるすべてのリクエストは、サーブレットフィルタによって傍受されます。その他のものはそのままです。
- 1. 次のページに移動するようにユーザーを制限しますか?
- 2. Spring-BootとOAuth2でログインする特定のドメインに制限する方法
- 3. 特定の名前のクロスアカウントロールを仮定するようにIAMユーザーを制限する方法
- 4. WebSphere:ログインする前のページにユーザーをリダイレクトする方法は?
- 5. ASP.NET MVCの特定のページへのアクセスを制限するにはどうすればよいですか?
- 6. Worklight 6.1で一度に1つのクライアントからログインするようにユーザーを制限する方法は?
- 7. ユーザーにログインする前にセキュリティチェックを行う方法(ログイン前)
- 8. 特定のGitHubユーザーにブランチをマージするように制限する
- 9. ユーザーがログインした後にログインビューを制限する方法は?
- 10. 特定のコレクションのレコード数を制限する方法はありますか
- 11. cURL-カールに特定のネットインターフェイスを使用するように強制する方法はありますか
- 12. 特定の動作を特定のクラスのインスタンスのサブセットに限定する方法はありますか?
- 13. GCを特定の%のCPUに限定する方法はありますか?
- 14. DNSServiceをループバックインターフェイスに制限する方法はありますか?
- 15. ロールによるアクセスをSpringデータRESTプロジェクションに制限する方法はありますか?
- 16. turn.jsで特定のページに移動する方法
- 17. メソッドを特定のスレッドに限定する方法はありますか?
- 18. ログインしていないユーザーに対してCRUD機能を制限する方法はありますか?
- 19. ログイン後、ユーザーを別のページに移動するにはどうすればよいですか?
- 20. フォームを特定のページに移動する方法
- 21. asp.netの特定のディレクトリ/フォルダからページを選択すると、ログインするユーザを制限する方法はありますか?
- 22. CATransitionをビュー全体ではなく特定のビューに制限する方法はありますか?
- 23. typescriptでは、入力リファレンスを特定のファイルに制限する方法はありますか?
- 24. 特定のユーザーに対してプログラムでスケジュールできるカレンダーイベントの数に制限はありますか?
- 25. WebDriver IWebElementsには特定のサイズ制限がありますか?
- 26. spring-mvcがcontent-typeを取るように設定する方法はありますか?
- 27. redisソートセットにメンバー制限を設定する方法はありますか?
- 28. 特定のカテゴリに追加の管理ユーザーアクセスをマジェンタで制限する方法はありますか?
- 29. Spring Bootで各ユーザーのレート制限を設定するにはどうすればよいですか?
- 30. 特定の募集段階にユーザーを制限する方法は?
2つの単語:春のセキュリティ。ここでは[doc](http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/)です。ここには[チュートリアル](http://docs.spring.io/spring-セキュリティ/サイト/ docs/current/guides/html5 //) – Prashant