我如何保护Web应用程序?

时间:2013-07-26 09:38:40

标签: spring security jsp spring-security

我有一个Web应用程序(JSP),我需要限制访问权限,因此只有登录用户才能看到该应用程序。我看了它,发现了许多不同的方法。有人说使用Cookie,会话或框架,如Spring Security。
我应该用什么?到目前为止,我有java和jsp编程的中等经验,所以你建议我做什么?
非常感谢你!

2 个答案:

答案 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版本。考虑以下优势:

  • 将来如果您需要一些新的安全功能,那么您可以打开它们而不是从零开发它们(例如LDAP身份验证,SSO,......)
  • 新开发人员有可能已经熟悉您的安全框架(另一方面,它确信它不熟悉您的自制工具)。
  • 他们中的大多数都有很好的文档,所以当我们谈论基本的URL授权时,学习问题很小(你有足够的时间为自制的库准备相同级别的文档吗?)。
  • 他们内置了对会话录制等攻击的支持。
  • 他们有多个扩展点,因此您不受框架的限制(您可以添加/修改必要的功能)。
  • 他们有模块化的结构,你不需要加载所有模块/了解它们。只使用你需要的东西。

检查Apache ShiroSpring Security

可能对您有用

如果您开始阅读here中的官方文档,那么您可以在不到30分钟的时间内准备好基本URL授权(在conf中使用硬编码用户)。然后你需要在你的类路径中包含相应的jar(对于Spring和Spring Security),这就是全部。打开org.springframework.security的调试日志记录,看看发生了什么。