我正试图从一个带有Spring Boot和嵌入式Jetty的“胖”可执行JAR中的main()
方法初始化Spring Security性。我在Java配置中使用Spring Security性(没有web.xml)。问题是嵌入式Jetty无法注册springSecurityFilterChain
过滤器。
当我在Jetty中运行与WAR相同的JAR(mvn Jetty:run
)时,它工作正常,我看到:
Initializing Spring embedded WebApplicationContext
但在嵌入式Jetty中运行时,我没有看到WebApplicationContext
被初始化。
我有一个嵌入式ServletContainerFactory
:
@Bean
public EmbeddedServletContainerFactory servletContainerFactory() {
JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory();
factory.setPort(8080);
factory.addServerCustomizers(new JettyServerCustomizer() {
public void customize(Server server) {
// TODO: INITIALIZE SPRING SECURITY SOMEHOW...
}
});
return factory;
}
我曾尝试创建AbstractSecurityWebApplicationInitializer
的子类,但它与我的SpringBootServletilizer
冲突。在我的pom中。xml
我有以下依赖关系:
spring boot starter jetty
spring boot starter日志记录
spring boot starter
当我添加sping-boot-web
时,它会抛出:
java.lang.IllegalArgumentException: A ServletContext is required to configure default servlet handling
我还试图向Jetty注册DelegatingFilterProxy
,但它抛出:
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
我想我需要告诉Jetty使用WebApplicationContext
,但是如何使用呢?
您的设置禁用Spring Boot来发挥它的魔力。让Spring Boot来处理它,而不是自己设置容器。您可以简单地将您的JettyServerCustomizer
作为@Bean
添加到配置中。这将执行它,您可以注册您需要的任何东西。
这仍然允许Spring Boot发挥其魔力,并且您已经注册了所需的额外endpoint。
另一种解决方案可以是将servlet添加为一个Servlet注册Bean
到您的配置中,然后它将由Spring Boot自动添加。
本文向大家介绍SpringBoot + SpringSecurity 环境搭建的步骤,包括了SpringBoot + SpringSecurity 环境搭建的步骤的使用技巧和注意事项,需要的朋友参考一下 一、使用SpringBoot+Maven搭建一个多模块项目(可以参考这篇文章 --> 这里) 二、删除父工程的src文件,删除app、browser、core下的.java文件 依赖关系: dem
我有时会在pom中看到以下声明。xml。。。 如您所见,sping-boo-starter-web被声明为tomcat-embed-jasper。 是不是sping-boo-starter-web已经有一个嵌入式tomcat了?为什么一些开发人员仍然声明tomcat-embed-jasper以及boot-starter-web?还是有什么原因?
我正在寻找在嵌入式Jetty WebAppContext contextPath中的通配符支持,但无法找到任何。我有以下代码为我的购物WebApp: 我希望,如果访问http://ip:port/shopping/任何东西,它应该加载我上面的WebApp。但事实并非如此。我也尝试了path=“/shopping/*”,但它也不起作用。 这里有人能帮助我吗,如果它可能或不可能,或者我在这里做错了什么
我的应用程序在嵌入式 Jetty 9.2.11 上运行良好,但是在使用 maven 汇编插件组装后,只提供在 web.xml 中声明的 servlet。 我的jar包含使用Servlet 3.0格式的许多jar被放置在中,每个jar都带有。从 NetBeans 运行时,可以很好地发现这些内容。 所有的< code>web.xml和< code>web-fragment.xml文件都非常标准。只有s
Eureka Discovery服务器(包括/config/*服务器上的云配置服务)正在向Eureka服务器注册,并且Eureka仪表板显示了该实例。此服务在端口9001上运行,启用SSL并进行用户身份验证。服务照常工作。 然后我创建了一个新的SpringBoot服务,它连接到Eureka并注册到它。由于使用了自签名证书,我在这篇文章中编写了一个小的SSLConfguration类:如何覆盖Spr
问题内容: 我正在使用嵌入式Jetty,我想添加一个servlet过滤器以在每个请求之前检查身份验证。我尝试按照以下示例进行操作,但签名似乎已更改。 我的Jetty启动器看起来像这样: 当我取消注释 我发现签名已更改。因此,我想退一步,问一问,对于嵌入式Jetty,如何添加一个在请求开始时运行的过滤器,并仅在满足某些条件时才允许请求继续进行? AuthenticationFilter类的开始看起来