我有一个Web应用程序(JSP),我需要限制访问权限,因此只有登录用户才能看到该应用程序。我看了它,发现了许多不同的方法。有人说使用Cookie,会话或框架,如Spring Security。
我应该用什么?到目前为止,我有java和jsp编程的中等经验,所以你建议我做什么?
非常感谢你!
答案 0 :(得分:1)
考虑使用servlet过滤器。将登录用户存储在会话中并配置过滤器以检查用户在尝试访问站点的安全目录时是否已记录(通过url-pattern)。
此处的基本信息http://www.tutorialspoint.com/jsp/jsp_writing_filters.htm。
但是这里有一些更具体的内容可以让你开始。
创建一个实现javax.servlet.Filter的类,覆盖doFilter方法并检查用户是否已登录并使用注释配置urlPatterns。
过滤器上的注释将是这样的:
@WebFilter(filterName="LoggingFilter", urlPatterns={"/secured/*"})
您希望保护的目录称为“安全”。
在类中重写doFilter()方法并检查用户是否已登录:
User user = session.getAttribute("user");
if (user != null) {
chain.doFilter(request, response); // User is logged in so forward response.
} else {
response.sendRedirect("login"); // User not logged in so redirect to login page.
}
这是将登录用户限制为站点的指定部分的有效方法。可以扩展此简单示例,以根据用户类型或其他一些标准限制对站点不同部分的访问。
答案 1 :(得分:1)
我建议直接使用它,而不是准备自制的Spring Security版本。考虑以下优势:
检查Apache Shiro和Spring Security。
可能对您有用如果您开始阅读here中的官方文档,那么您可以在不到30分钟的时间内准备好基本URL授权(在conf中使用硬编码用户)。然后你需要在你的类路径中包含相应的jar(对于Spring和Spring Security),这就是全部。打开org.springframework.security
的调试日志记录,看看发生了什么。