簡體   English   中英

如何在嵌入式Tomcat上定義tomcat-users.xml?

[英]How to define tomcat-users.xml on embedded Tomcat?

我正在使用Selenium在Maven Web應用程序上運行自動JUnit測試。 基本上我在嵌入式Tomcat服務器(org.apache.tomcat.embed)上運行應用程序。 應用程序使用BASIC身份驗證,因此我需要以某種方式在嵌入式tomcat服務器上定義tomcat-users.xml。 我嘗試將tomcat-users.xml放到src / main / webapp / META-INF /但是它不起作用。

這是我啟動服務器的方式:

tomcat = new Tomcat();
tomcat.setPort(0);
tomcat.addWebapp("/", new File("src/main/webapp/").getAbsolutePath());
tomcat.start();

我不久前想到了這個,所以這里有一個有類似問題的人的解決方案。 基本上你可以直接在java代碼中定義tomcat-users.xml中的內容:

//Add role and user order is important
tomcat.addRole("userName", "admin");
tomcat.addRole("userName", "editor");
tomcat.addUser("userName", "password");

您可以通過添加context.xml文件來完成此操作。

try {
     Context context = tomcat.addWebapp("/test", "PathToTheWebApp");
     context.setConfigFile(Paths.get("PathToTheContextFile").toUri().toURL());
} catch (ServletException e) {

}

你的context.xml應該是這樣的。

<?xml version="1.0" encoding="UTF-8"?>
<Context>
  <Realm className="org.apache.catalina.realm.MemoryRealm" pathname="PathToUsers.xml"/>
</Context>

您的users.xml文件類似於tomcat-users.xml文件。 例:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
    <role rolename="admin"/>
    <user username="admin" password="admin" roles="admin"/>
</tomcat-users>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM