2012-03-01 14 views
1

: - アプリケーション
jsp_seacurity.jspのメインウィンドウ -
main.jsp場合、ユーザーにリダイレクト送るJSPファイルには、特定のページへのアクセス何を持っていない(私は
)別のページでそれを再利用するnoaccess.jsp別のファイルを作成した - 私のmain.jspでのアクセス拒否ページjsp:forward in jsp:includeは元のページの処理を終了させませんか?私は状況を説明します質問を理解することが

を、最初の行の一つは次のとおりです。

<jsp:include page="jsp_security.jsp?bo_item=main&bo_permission=view"/> 
jsp_security.jspで

私はいくつかのチェックを行うと、ユーザーがアプリケーションの特定の部分のための権限を持っていない場合、私は次のコードを持っている:、main.jspの許可なしにユーザーを使ってログインした後

<jsp:forward page="noaccess.jsp"/> 

を私は気づきました。GlassFishは、jsp:includeの後にあるmain.jspのいくつかの行で発生していたログファイルに例外を表示していました。私は、JSPをチェックして:ドキュメントが含まれており、それは私には、アクションが終了すると

、JSPコンテナは、JSPファイルの残りの部分を処理 を続けていたものでした。

これで、jsp:forwardをjsp_security.jspで実行した後でもmain.jspの処理を続行しますか?このための回避策はありますか?私は安全保障ではない、多分私がやっていることは完全に間違っている?

助けてくれてありがとう、
Serhiy。

答えて

1

です。この行が生成されたサーブレット・ファイル(JSPはサーブレットにコンパイルされます)に挿入される内容は、request.getRequestDispatcher("target.jsp").forward(req, resp)です。

これは、doGet()メソッドが返されることを意味するものではなく、引き続き実行されます。

セキュリティチェックを追加するには、Filterを使用する必要があります。条件が満たされない場合は、chain.doFilter()に電話するのではなく、代わりに '禁止された'ページにリダイレクトします。

+0

よろしくお願いします。フィルタは私には完璧な回避策です。フィルタについてのドキュメントを読むのに役立ちます。 – Serhiy

関連する問題