在JSP中限制url访问

时间:2009-09-29 16:55:10

标签: jsp url

我有一个使用表单和验证字段并重定向到其他页面等的站点,但我需要知道如何让任何用户不能直接使用URL访问页面,并将其重定向到登录表单... < / p>

我见过这个,但我不知道怎么称呼它。 :S

我认为这是会话变量,我应该在页面顶部检查我想要限制的会话变量。

我正在使用JSP构建我的网站。

3 个答案:

答案 0 :(得分:3)

您可以使用部署描述符中的安全性约束以声明方式执行此操作。

基本上,您说'这组资源只能由使用给定HTTP方法的给定规则集中的用户访问',如下所示:

URL / secured / *背后的资源仅供“admin”角色中经过身份验证的用户访问。

<web-app...>
  <security-constraint>

    <web-resource-collection>
      <web-resource-name>secured</web-resource-name>
      <description>Secured pages</description>
      <url-pattern>/secured/*</url-pattern>
      <http-method>POST</http-method>
      <http-method>GET</http-method>
    </web-resource-collection>

    <auth-constraint>
      <description>Administrative users</description>
      <role-name>admin</role-name>
    </auth-constraint>

  </security-constraint>

</web-app>

它需要一些设置 - 安全领域等,登录表单配置,但这意味着您的安全设置不是以编程方式完成的,而是采用工具支持和抽象的声明方式。这有助于保持代码清洁和集中。

以下是Sun Educational material for Java EE 5的相关部分。这是一个相对复杂且可能非常重要的主题,所以我建议您仔细阅读那里的材料。

答案 1 :(得分:2)

Java EE教程有一节专门介绍securing web applications

这就是你需要做的 - 你将能够在你的webapp描述符(web.xml)中声明你的安全约束。 Here是如何保护特定网址的示例

答案 2 :(得分:2)

或者,您可以使用过滤器捕获所有请求并根据需要转发到正确的路径。它需要更多的工作而不是安全限制,但你可以更好地控制处理。

然而,使用安全约束无疑是一个很好的简单解决方案。