【问题标题】:How to control access to HTML pages in Tomcat 5.5 using tokens如何使用令牌控制对 Tomcat 5.5 中 HTML 页面的访问
【发布时间】:2011-07-25 17:03:55
【问题描述】:

我有一个托管一些 HTML 页面的 Tomcat 5.5 服务器。我想控制对这些页面的访问。传入用户的 HTTP 请求应该具有特殊的身份验证值。

我需要编写一个函数,该函数根据每个用户请求的身份验证值返回真/假。根据这个真/假值,是否应该授予用户访问权限。

你知道怎么做吗?

谢谢

【问题讨论】:

    标签: html tomcat security tomcat5.5


    【解决方案1】:

    一个实用的解决方案是创建一个ServletFilter 并将其映射到所有资源 (/*)。阅读您的问题,我猜您的身份验证方法不会基于会话(JSESSIONID cookie),而是基于 URL 本身的令牌部分。

    【讨论】:

    • 实际上我并没有使用 JSESSIONID cookie 本身,而是在 HTTP 标头中使用了另一个 cookie(我们称之为 MYSESSIONID)。使用此会话的值,我将能够对用户进行身份验证并决定是否授予他访问权限。如果我的页面是 JSP 而不是 HTML,我将能够从 JSP 页面本身以编程方式执行此操作。但是由于我使用的是 HTML 页面,所以我无法做到这一点。这就是为什么我需要一个服务器方法(如 Tomcat 解决方案)。
    • 从我在您提供的 ServletFilter 链接中看到的情况来看,这也只能应用于服务器端脚本。是对的,还是我也可以将它用于 HTML 页面?跨度>
    • 我找到了这个链接:lumdev.net/node/2554 这正是我想做的事情
    【解决方案2】:

    您必须在 Tomcat 中编写自己的 Authenticator

    编辑:

    1. 继承AuthencatorBase类并实现抽象方法authenticate
    2. 将你的 jar 放在 tomcat 的 lib 文件夹中,不是你的 webapp
    3. 在您的web.xml 中指定您想要保护的资源。
    4. context.xml 中声明您的身份验证器 => 这在技术上是Valve
    5. 部署您的应用程序并开心!

    【讨论】:

    • 我找不到合适的用法示例。可以给我一份吗?
    • 取同目录下的BasicAuthenticator
    • 请详细说明。。我找到了很多BasicAuthenticator.java源代码的链接,但我没有找到任何如何使用它的示例。我想覆盖身份验证函数并编写自己的身份验证逻辑。但是如何指定此身份验证应用的 URL 路径?派生类在哪里适合我的项目?
    【解决方案3】:

    使用 Tomcat,您需要使用 Realm 来保护您的页面。

    http://tomcat.apache.org/tomcat-4.1-doc/realm-howto.html

    【讨论】:

    • 据我所知,Realm 基于代表用户和角色的数据库表进行操作。就我而言,我有不同的机制来验证/授权地址。
    猜你喜欢
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 2012-04-12
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多