最近我一直在使用彈簧啓動進行一些項目,我非常喜歡它。對於一個新項目,我們希望使用tomcat-users.xml進行真正的基本認證,但我無法弄清楚如何在沒有web.xml文件的情況下使用該機制。大多數使用彈簧靴的人似乎都在使用彈簧安全裝置。集裝箱安全彈簧啓動
是否有可能在spring引導java配置模型中使用tomcat容器安全性?我知道這打破了可運行jar範例,但我們打算將它作爲一個戰爭部署。
最近我一直在使用彈簧啓動進行一些項目,我非常喜歡它。對於一個新項目,我們希望使用tomcat-users.xml進行真正的基本認證,但我無法弄清楚如何在沒有web.xml文件的情況下使用該機制。大多數使用彈簧靴的人似乎都在使用彈簧安全裝置。集裝箱安全彈簧啓動
是否有可能在spring引導java配置模型中使用tomcat容器安全性?我知道這打破了可運行jar範例,但我們打算將它作爲一個戰爭部署。
WEB-INF/web.xml和WebApplicationInitializer使用不是相互排斥的;例如,web.xml可以註冊一個servlet,而WebApplicationInitializer可以註冊另一個。初始化程序甚至可以通過諸如ServletContext.getServletRegistration(String)之類的方法修改在web.xml中執行的註冊。但是,如果應用程序中存在WEB-INF/web.xml,則其版本屬性必須設置爲「3.0」或更高,否則Servlet容器將忽略ServletContainerInitializer引導程序。
所以,我解決了既WebApplicationInitializer
(SpringBootServletInitializer
延伸WebApplicationInitializer
)和web.xml
。
春天啓動的Java配置類:
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
//...
}
的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
metadata-complete="false" version="3.0">
<display-name>My Awesome Application</display-name>
<security-constraint>
<web-resource-collection>
<web-resource-name>My Awesome Resource Name</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>myawesomerole</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>
參見:Using Tomcat Basic Auth with new WebApplicationInitializer
看http://stackoverflow.com/a/25999919/28214這裏有一個以編程方式配置用戶的例子。 – gregturn 2014-09-26 19:19:49
這是以編程方式設置用戶的絕佳信息,但它不包括如何使用容器安全保護URL資源,這是我失蹤的一部分。 – NTyler 2014-09-28 14:14:36