配置特定于上下文的Tomcat安全领域

我试图在Tomcat 6.0中获得上下文特定的安全领域,但是当我启动Tomcat时,出现以下错误:

09-Dec-2010 16:12:40 org.apache.catalina.startup.ContextConfig validateSecurityRoles
INFO: WARNING: Security role name myrole used in an <auth-constraint> without being defined in a <security-role>

我创建了以下的context.xml文件:

<Context debug="0" reloadable="true">

  <Resource name="MyUserDatabase"
            type="org.apache.catalina.UserDatabase"
            description="User database that can be updated and saved"
            factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
            pathname="conf/my-users.xml" />

  <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
         resourceName="MyUserDatabase"/>

</Context>

创建了一个文件:我放在WEB-INF / conf下的my-users.xml,它包含以下内容:

<tomcat-users>
  <role rolename="myrole"/>
  <user username="test" password="changeit" roles="myrole" />
</tomcat-users>

将以下几行添加到我的web.xml文件中:

<web-app ...>
  ...
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Entire Application</web-resource-name>
      <url-pattern>/*</url-pattern>
    </web-resource-collection> 
    <auth-constraint>
      <role-name>myrole</role-name>
    </auth-constraint>
  </security-constraint>

  <login-config>
    <auth-method>BASIC</auth-method>
  </login-config>
  ...
</web-app>

但似乎无论我把conf / my-users.xml放在哪里都会出错。 我必须在路径名中指定一个明确的PATH还是相对于某个地方? 理想情况下,我希望将其打包为我的WAR文件的一部分。

有任何想法吗?


我相信你的web.xml中需要以下内容

<security-role>
    <role-name>myrole</role-name>
</security-role>

以确定角色。 另外,我认为你需要在login-config中引用领域

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>MyUserDatabase</realm-name>
 </login-config>

或类似的。


查看Tomcat配置目录中的tomcat-users.xml文件,该文件将安全角色定义为您需要的示例。

另外,请参阅以下文章以获取指导。

链接地址: http://www.djcxy.com/p/49209.html

上一篇: Configuring a Context specific Tomcat Security Realm

下一篇: Git: How to move back and forth between commits