2013-03-02 83 views
0

我是使用jsp,servlet,beans等的新手......。jsp:安全选择菜单

也许一个奇怪的问题,但在jsp中制作选择菜单的最安全方法是确保无法直接访问它。

在这一刻我有一个登录系统,根据我从数据库检索的用户的“种类”,我根据他们拥有的“权限”将它们发送到特定的jsp。在这个页面上,他们将获得他们可以做的选择。

但如果我使用类似:

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

它会很容易只从外部访问这些网页旁边(没有多大用处的登录系统即可)。

我可以使用我从前一页检索的bean检查它是否为空(如果直接访问此页面,这会是这样)或类似的东西。

任何建议将受到欢迎。 thx

回答

0

您可以使用Servlet Filter来验证用户是否已登录系统并验证用户是否有权访问此页面。一个例子将如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); 
    } 
}