Spring Boot与容器安全性

时间:2014-09-26 17:20:48

标签: java spring tomcat spring-boot

我最近一直在为一些项目使用弹簧靴而且我非常喜欢它。对于一个新项目,我们希望使用tomcat-users.xml进行真正的基本身份验证,但我无法弄清楚如何在没有web.xml文件的情况下使用该机制。大多数使用弹簧靴的人似乎都在使用弹簧安全装置。

是否可以在spring boot java配置模型中使用tomcat容器安全性?我理解这打破了可运行的jar范例,但我们还计划将其作为战争部署。

1 个答案:

答案 0 :(得分:4)

来自official Spring doc

  

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