1

私はjstlコードを使用して、アクセスする唯一の管理者ユーザーでなければならないボタンを非表示にしています...たとえば、deletepage.jspにリダイレクトする通常のユーザーにボタンを非表示にします。c:if jstl タグを使用して正しく作成しました...しかし、リンクを知っていれば、通常のユーザーでもアクセスできます...この状況を防ぐにはどうすればよいですか?

4

3 に答える 3

0

フィルタを web.xml ファイルに設定してから、SecurityFilter クラスを実装できます。このクラスでは、関数を実装する必要があります

public void doFilter(ServletRequest req, ServletResponse res,FilterChain next) throws IOException, ServletException {
}

次に、要求された URL に対して現在のユーザーのセッションがあるかどうかを確認できます。はいの場合は、そのページに移動できます。それ以外の場合は、単に拒否してエラー ページにリダイレクトします

if ("/admin.jsp".equals(httpReq.getServletPath())) {
    if(httpReq.getSession().getAttribute("CurrentUser")!=null) {

        // go to the requested url 
    }
    else {
        httpReq.getRequestDispatcher("/no_access.jsp").forward(httpReq, httpRes);
        return;
    }
}
于 2013-01-27T18:00:31.967 に答える
0

MVC を使用すると、コントローラーでアクセス制御リスト (ACL) に対してユーザーの ID をチェックして、制限されたページへのアクセスを防ぐことができます。また、これをさらに封印するために、制限されたページへの直接アクセスを追加でチェックして、ユーザーが直接要求できないようにすることもできます。この提案されたソリューションの実装の詳細は、設計に応じて決定する必要があります。

于 2013-01-27T15:44:08.753 に答える