Springboot-AJP连接器配置了secretRequired =“ true”,但是升级到2.2.5后secret属性为null或“”

问题描述

这是一个解决方案,尽管可能不是最好的解决方案,但是我的重点不是这个,只是为了解决错误,我在Spring Boot 2.2.5.RELEASE版本上启用了AJP。添加

  1. ((AbstractAjpProtocol) ajpConnector.getProtocolHandler()).setSecretrequired(false);

我的AJP配置完整课程:

  1. package com.ssldemo.config;
  2. import org.apache.catalina.connector.Connector;
  3. import org.apache.coyote.ajp.AbstractAjpProtocol;
  4. import org.springframework.beans.factory.annotation.Value;
  5. import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.context.annotation.Configuration;
  8. @Configuration
  9. public class TomcatConfiguration {
  10. @Value("${tomcat.ajp.port}")
  11. int ajpPort;
  12. @Value("${tomcat.ajp.remoteauthentication}")
  13. String remoteAuthentication;
  14. @Value("${tomcat.ajp.enabled}")
  15. boolean tomcatAjpEnabled;
  16. @Bean
  17. public TomcatServletWebServerFactory servletContainer() {
  18. TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
  19. if (tomcatAjpEnabled) {
  20. Connector ajpConnector = new Connector("AJP/1.3");
  21. ajpConnector.setPort(ajpPort);
  22. ajpConnector.setSecure(false);
  23. ajpConnector.setAllowTrace(false);
  24. ajpConnector.setScheme("http");
  25. ((AbstractAjpProtocol) ajpConnector.getProtocolHandler()).setSecretrequired(false);
  26. tomcat.addAdditionalTomcatConnectors(ajpConnector);
  27. }
  28. return tomcat;
  29. }
  30. }

application.properties

  1. server.port=8082
  2. tomcat.ajp.port=9090
  3. tomcat.ajp.remoteauthentication=false
  4. tomcat.ajp.enabled=true

解决方法

由以下原因导致:java.lang.IllegalArgumentException:AJP连接器配置了secretRequired =“
true”,但是secret属性为null或“”。此组合无效。在org.apache.catalina.connector.Connector.startInternal(Connector.java:1035)的org.apache.coyote.ajp.AbstractAjpProtocol.start(AbstractAjpProtocol.java:264)…省略了22个常见框架

将springboot从2.1.9升级到2.2.5后,我看到上述错误。升级是克服Ghostcat漏洞所必需的,方法是将tomcat版本升级到9.0.31,该版本已与最新的springboot
2.2.5捆绑在一起。

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”