今日、私はSSH2を使用して簡単なシステムを書き、問題を発見しました。ホームページを入力する前に、システムを正常にログインする必要があります。ただし、ブラウザのホームページアドレスを直接入力して、入力できることがわかりました。これは間違いなく良くなく、セキュリティはまったくありません。情報を確認した後、フィルターにログインする必要があることがわかりました。私はそれを試してみて、ログインせずにホームページに入る危険性を実際に避けることができることがわかりました。以下は、私がまとめた詳細な手順です。
1.最初に、フィルターインターフェイスを実装する許可フィルタークラスを作成します
java.io.ioexception; Import javax.servlet.filter; Import javax.servlet.filterchain; Import javax.servlet.filterconfig; Import javax.servletexception; Import javax.servlet.servletrequest; Import javax.servlete.servletepersperseperseperspest javax.servlet.http.httpservletrequest;インポートjavax.servlet.http.httpservletresponse; Import javax.servlet.http.httpsessess;パブリッククラスのloginfilter実装フィルター{@override cublid void init(filterconfiltecontexcows serveletexections } @Override public void dofilter(servletRequest request、servletResponse応答、フィルターチェーンチェーン)IoException、servletexception {//次のコードで使用するリクエスト、応答、セッションオブジェクトを取得するhttpservletrequest servletrequest =(httpservletrequest)リクエスト; httpservletResponse servletResponse =(httpservletResponse)応答; httpsession session = servletrequest.getSession(); //ユーザー文字列パス= servletRequest.getRequesturi()によってリクエストされたURIを取得します。 //system.out.println(path); //セッションString empid =(string)session.getAttribute( "empid")から従業員の作業番号情報を取得します。 /*クラス定数を作成します。Javaは、(int i = 0; i <constants.nofilter_pages.length; i ++){if(path.indexof(constants.nofilter_pages [i])> -1){chain.dofilter(servletrequest、servletresponse);戻る; }}*//ログインページにはフィルタリングが必要ですif(path.indexof( "/ login.jsp")> -1){chain.dofilter(servletRequest、servletResponse);戻る; } //判断:従業員の情報が取得されない場合、ログインページにジャンプするif(empid == null || "" .equals(empid)){// loginページservletresponse.sendredirect( "/jingxing_oa/login.jsp"); } else {//ログイン、このリクエストChain.dofilter(request、response); }} @Override public void Destroy(){// todo auto-enerated method stub}}}2。次に、web.xmlでログイン許可確認を必要とするJSPファイルを構成します。
a。特定のJSPファイル(a.jspなど)の場合は、ログインして検証する必要があります
<! - ログインフィルターを構成 - > <filter> <filter-name> login </filter-name> <filter-class> com.jingxing.oa.filter.loginfilter </filter-class> </filter> <filter-name> login </filter-name> <url-pattern>/*
b。ディレクトリ(A/ディレクトリなど)の場合、ディレクトリ全体のファイルをログインして確認する必要があります。
<! - ログインフィルターを構成 - > <filter> <filter-name> login </filter-name> <filter-class> com.jingxing.oa.filter.loginfilter </filter-class> </filter> <filter-name> login </filter-name> <url-pattern>/*
上記は、Java Webフィルター検証ログインで、ログインがインターフェイスに導入されないようにします。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!