tomcat 7 web.xml层次结构 - 用户和角色 - java servlet

时间:2017-12-18 09:07:44

标签: authentication tomcat servlets tomee security-constraint

我试图熟悉TomEE,或者至少是我目前正在使用的旧应用程序中使用的TomCat 7。

在tomcat位置有一个web.xml。据我所知,这用于没有自己的web.xml的所有servlet,对吧?或者这也将用于那些拥有自己的servlet?

不确定此配置文件的层次结构。

试图获得一个基本身份验证,该模块可以通过\ localhost:8080 \ AB等网址分配。 \ localhost:8080 \ manager的tomcat用户工作正常。 但是无法登录\ localhost:8080 \ AB

我尝试修改web.xml,如:

<security-role>
 <role-name>users</role-name>
</security-role>
<security-constraint>
    <web-resource-collection>
        <web-resource-name>basic demo resource</web-resource-name>
        <url-pattern>\AB\*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>users</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
</login-config>

但访问此servlet仍然无需登录。

比我发现的,这个Java项目中还有另一个web.xml,我也尝试使用上面的代码进行修改。 我知道我做错了什么,但现在不能得到它。

角色&#34;用户&#34;在tomcat-users.xml中创建,用户也分配给该组。

2 个答案:

答案 0 :(得分:0)

您只定义了安全约束而非角色。您需要定义tomcat用户和交叉角色,例如。

<tomcat-users>
    <role rolename="AB"/>  <!-- you have to define all roles -->
    <user username="myname" password="mypassword" roles="AB"/> 
    <!-- you have to assign login and roles -->
 </tomcat-users>

答案 1 :(得分:0)

tomcat目录中的web.xml包含默认设置。 webapp可以覆盖自己的web.xml中的定义。

要访问/ AB,您需要:

  • 使用FORWARD斜杠:<url-pattern>/AB/*</url-pattern>
  • 让用户数据库中具有角色users的用户
  • 在登录弹出对话框中输入用户名和密码。