0

jsp、サーブレット、Bean などの使用は初めてです ... .

奇妙な質問かもしれませんが、jsp で選択メニューを作成して直接アクセスできないようにする最も安全な方法は何ですか。

現時点では、ログインシステムがあり、データベースから取得したユーザーの「種類」に応じて、ユーザーの「権限」に応じて特定の jsp に送信します。このページでは、彼らができる可能性の選択を取得します。

しかし、次のようなものを使用すると:

<a href="next.jsp">next option</a>

これらの次のページに外部からアクセスするのは簡単です (その場合、ログイン システムはあまり使用されません)。

前のページから取得した Bean を使用して、それが null (このページに直接アクセスした場合はそうなる) かどうかを確認できます。

どんな提案でも大歓迎です。どうも

4

1 に答える 1

0

サーブレット フィルターを使用して、ユーザーがシステムにログインしているかどうかを検証し、ユーザーがこのページにアクセスする権限を持っているかどうかを確認できます。例は、StackOverflow Servlet-Filters wikiに記載されているとおりです。関連するコードを投稿する:

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    HttpSession session = request.getSession(false);

    //session.getAttribute("user") contains the user info in session
    if (session == null || session.getAttribute("user") == null) {
        // No logged-in user found, so redirect to login page.
        response.sendRedirect(request.getContextPath() + "/login");
    } else {
        // Logged-in user found, so just continue request.
        chain.doFilter(req, res); 
    }
}
于 2013-03-02T19:19:35.750 に答える