【问题标题】:jsp: How can I protect a jsp page with a password?jsp:如何使用密码保护 jsp 页面?
【发布时间】:2010-08-23 14:53:51
【问题描述】:

我想用需要输入的密码来保护 jsp 页面。

在 apache 中,我可以将密码文件添加到 .htaccess,但我不知道如何在 apache tomcat 中执行此操作。

谢谢

【问题讨论】:

    标签: jsp tomcat password-protection


    【解决方案1】:

    那么,您基本上是想将 HTTP BASIC 身份验证放在特定的 JSP 页面上吗?这是一步一步的:

    1. 首先您需要在/conf/tomcat-users.xml 中声明所需的角色名、用户名和密码。

      <tomcat-users>
          <role rolename="yourrole"/>
          <user username="yourname" password="yourpass" roles="yourrole" />
      </tomcat-users>
      

      (您可以根据需要附加任意数量的&lt;role&gt; 和&lt;user&gt; 条目;如果已经存在条目,则只需将它们添加到&lt;tomcat-users&gt; 中。

    2. 然后您需要在 JSP 文件的 url-pattern 上声明所需的安全约束以及 BASIC 的登录配置(代表 HTTP BASIC 身份验证)。

      <security-constraint>
          <web-resource-collection>
              <web-resource-name>A JSP page</web-resource-name>
              <url-pattern>/page.jsp</url-pattern>
          </web-resource-collection>
          <auth-constraint>
              <role-name>yourrole</role-name>
          </auth-constraint>
      </security-constraint>
      <login-config>
          <auth-method>BASIC</auth-method>
      </login-config>
      

      /page.jsp 应该与 JSP 页面的上下文相关 URL 匹配。 yourrole 应与/conf/tomcat-users.xml 中定义的角色名称相同。

    重启服务器,在浏览器中打开JSP页面,使用yourname和yourpass登录。

    【讨论】:

    • 我应该将2.中列出的安全约束添加到哪个文件中?
    • @Will:您想用密码保护的 JSP 页面,就像这个问题的全部内容一样 :)
    • @Will:是的,只需指定您想要保护的 URL 模式。匹配是基于 URL 模式完成的,而不是基于资源类型。
    • 只是为了验证,#2是添加到应用程序的web.xml,而不是Tomcat conf文件夹中的web.xml,对吗? (我似乎不太清楚。)
    • 上面有一条评论,听起来像是在jsp文件中;它不去那里。我把它放在项目的web.xml 文件中。我不确定它是否也可以进入 tomcat web.xml 文件。
    【解决方案2】:

    完整信息在这里Apache Tomcat 6 Realm Configuration HOWTO。

    最简单的方法是使用MemoryRealm 在 tomcat-users.xml 中定义用户(名称、密码和角色),并在应用程序 web.xml 中定义要保护的资源。

    【讨论】:

      猜你喜欢
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多