[英]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.