如何防止其他人访问仅限管理员用户使用的链接

时间:2013-01-27 15:26:32

标签: java jsp java-ee servlets

我正在使用jstl代码隐藏必须是唯一访问的管理员用户的按钮...例如,我将按钮隐藏到重定向到deletepage.jsp的普通用户。我使用c:if jstl标签严重地做了...但是如果普通用户知道链接它仍然会被访问...如何防止这种情况?

3 个答案:

答案 0 :(得分:0)

使用MVC,您可以让控制器根据访问控制列表(ACL)检查用户的身份,以防止访问受限制的页面。此外,为了进一步密封,您可以额外检查直接访问这些受限制的页面,以便用户无法直接请求它们。此建议解决方案的实现细节由您决定,具体取决于您的设计。

答案 1 :(得分:0)

您可以在web.xml文件中设置filter,然后实现SecurityFilter类。在本课程中,您需要实现函数

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

然后,您可以检查当前用户是否有所请求网址的会话。如果是,那么您可以将他导航到该页面;否则,只是拒绝并重定向到错误页面

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;
    }
}

答案 2 :(得分:0)

3种方法:

1 - 对每个处理此问题的servlet进行验证。 2-通过过滤器来做。 3-使用任何类似struts的框架。

框架将以适当的方式编写更少的代码。如果您不想要优先使用的框架,则应使用过滤器