我有一个使用表单和验证字段并重定向到其他页面等的站点,但我需要知道如何让任何用户不能直接使用URL访问页面,并将其重定向到登录表单... < / p>
我见过这个,但我不知道怎么称呼它。 :S
我认为这是会话变量,我应该在页面顶部检查我想要限制的会话变量。
我正在使用JSP构建我的网站。
答案 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)
或者,您可以使用过滤器捕获所有请求并根据需要转发到正确的路径。它需要更多的工作而不是安全限制,但你可以更好地控制处理。
然而,使用安全约束无疑是一个很好的简单解决方案。