我可以访问tomcat管理器,并且可以上传war文件。这些战争之一是静态Web项目(压缩的html +媒体文件,重命名为* .war)。我想向此战争中添加Web-INF / web.xml文件,以使用基本的http auth保护内容。
我知道如何通过添加全局用户并在中分配角色来做到这一点tomcat-users.xml,但我想在war文件中定义所有用户名和密码。
tomcat-users.xml
web.xml
Thx,尤文
我在这里找到了解决方案:http : //wiki.metawerx.net/wiki/SecuringYourSiteWithContainerManagedSecurity
该页面介绍了如何定义META-INF/context.xml指向您自己的WEB- INF/users.xml。不幸的是,到users.xml文件的链接必须是绝对的,并且我不想对我的配置文件中的OS /文件系统路径做任何假设。
META-INF/context.xml
WEB- INF/users.xml
这是我目前的情况WEB-INF/web.xml:
WEB-INF/web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd" version="2.5"> <display-name>SuperCoolTool</display-name> <description>What an awesome app!</description> <security-role> <role-name>manager</role-name> </security-role> <security-role> <role-name>keyuser</role-name> </security-role> <security-constraint> <web-resource-collection> <web-resource-name> Entire Application </web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>keyuser</role-name> <role-name>manager</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>Evaluation Area</realm-name> </login-config> </web-app>
匹配META-INF/context.xml如下所示:
<?xml version="1.0" encoding="UTF-8"?> <Context> <Realm className="org.apache.catalina.realm.MemoryRealm" pathname="[PATH-TO-YOUR-WEBAPP]/WEB-INF/users.xml"/> </Context>