如何在WebFlux WAR应用程序中激活Spring Security [英] How to activate Spring Security in a webflux war application
本文介绍了如何在WebFlux WAR应用程序中激活Spring Security的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在WAR打包应用程序中激活webflux
安全。我使用的是Spring5内置AbstractAnnotationConfigDispatcherHandlerInitializer
,但它不起作用。
public class AppIntializer extends AbstractAnnotationConfigDispatcherHandlerInitializer {
@Override
protected Class<?>[] getConfigClasses() {
return new Class[]{
WebConfig.class,
SecurityConfig.class
};
}
}
但似乎没有启用Spring Security WebFilter。Spring Security 5不包括特定于WebApplicationInitializer
以激活Spring安全筛选器链的反应堆。
Stack:Spring Security 5.0.0.M4
推荐答案
您应该只能使用AbstractAnnotationConfigDispatcherHandlerInitializer
。但是,AbstractDispatcherHandlerInitializer
中有一个bug。您可以使用以下命令解决此问题:
public class AppInitializer extends AbstractAnnotationConfigDispatcherHandlerInitializer {
@Override
protected Class<?>[] getConfigClasses() {
return new Class[]{
WebConfig.class,
SecurityConfig.class
};
}
protected void registerDispatcherHandler(ServletContext servletContext) {
String servletName = getServletName();
ApplicationContext applicationContext = createApplicationContext();
refreshApplicationContext(applicationContext);
registerCloseListener(servletContext, applicationContext);
HttpHandler httpHandler = WebHttpHandlerBuilder.applicationContext(applicationContext)
.build();
ServletHttpHandlerAdapter handlerAdapter = new ServletHttpHandlerAdapter(httpHandler);
ServletRegistration.Dynamic registration = servletContext.addServlet(servletName, handlerAdapter);
registration.setLoadOnStartup(1);
registration.addMapping(getServletMapping());
registration.setAsyncSupported(true);
customizeRegistration(registration);
}
}
在Spring 5.0.2.RELEASE+(计划于2017年11月15日发布)中,您可以改为扩展AbstractReactiveWebInitializer
。
public class AppIntializer extends AbstractReactiveWebInitializer {
@Override
protected Class<?>[] getConfigClasses() {
return new Class[]{
WebConfig.class,
SecurityConfig.class
};
}
}
这篇关于如何在WebFlux WAR应用程序中激活Spring Security的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文