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

标签 authentication tomcat servlets apache-tomee security-constraint

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

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

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

尝试为一个可以通过\localhost:8080\AB 之类的 url 分配的模块获取基本身份验证 \localhost:8080\manager 的 tomcat-users 工作正常。 但是无法登录\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,我也尝试用上面的代码对其进行修改。 我知道我做错了什么,但现在不明白是什么。

角色“users”是在 tomcat-users.xml 中创建的,并且用户也被分配到该组。

最佳答案

您只定义了安全约束,没有定义角色。您需要定义 tomcat 用户和 crossponding 角色。

<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>

关于authentication - tomcat 7 web.xml 层次结构 - 用户和角色 - java servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47865094/

相关文章:

java - 测试 cxf 示例项目 java_first_spring_support 是否有效

java - 构造函数 JSONObject(String) 是未定义错误 - 无法解析

spring-mvc - Tomcat 启动时找不到 index.jsp

configuration - 为 Tomcat 中的单个目录配置符号链接(symbolic link)

java - Spring MVC : wrong encoding of downloaded file

servlets - 获取 Servlet 请求中 URL 的哈希标记(#)字符

javascript - 没有httpOnly的Cookie,有多不安全?

authentication - 后端应用程序如何验证 JavaScript 框架应用程序发送的 JWT token ?

php - Log.php 从 MySQL 数据库返回 'Invalid User'

c++ - JNI 调用以使用 LogonUser 对用户进行身份验证?