我最近一直在为一些项目使用弹簧靴而且我非常喜欢它。对于一个新项目,我们希望使用tomcat-users.xml进行真正的基本身份验证,但我无法弄清楚如何在没有web.xml文件的情况下使用该机制。大多数使用弹簧靴的人似乎都在使用弹簧安全装置。
是否可以在spring boot java配置模型中使用tomcat容器安全性?我理解这打破了可运行的jar范例,但我们还计划将其作为战争部署。
答案 0 :(得分:4)
WEB-INF / web.xml与WebApplicationInitializer的使用并不相互排斥;例如,web.xml可以注册一个servlet,WebApplicationInitializer可以注册另一个servlet。初始化程序甚至可以通过ServletContext.getServletRegistration(String)等方法修改web.xml中执行的注册。但是,如果应用程序中存在WEB-INF / web.xml,则其version属性必须设置为“3.0”或更高,否则Servlet容器将忽略ServletContainerInitializer引导。
所以,我用@Component({
template: `
(...)
`,
directives: [ NgFor ]
})
(WebApplicationInitializer
扩展SpringBootServletInitializer
)和WebApplicationInitializer
解决了问题。
Spring Boot Java配置类:
web.xml
的web.xml:
@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);
}
//...
}
另请参阅:Using Tomcat Basic Auth with new WebApplicationInitializer