в чем причина не обнаруживать RestController для некоторых запросов - PullRequest
0 голосов
/ 10 октября 2019

Я использую Spring Boot 2.1.7 Release и пытаюсь создать простое приложение отдыха. Каким-то образом этот RestController не обнаруживается запросом от стороннего приложения vandor, а определяется curl commend от того же хоста и soapUI.

 @RestController
    public class SendController {

        private static final Logger log = LoggerFactory.getLogger(SendController.class);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");

        @PostMapping("/Message")
        public ResponseEntity SendMessage(@RequestBody String body, HttpMethod method,
                HttpServletRequest request, HttpServletResponse response) throws URISyntaxException {
        log.info("SendMessage method of SendController invoked");
        response.setStatus(200);
}

Контроллер довольно прост. Я удалил все коды для простого теста.

current application.properties

server.port=8444
server.ssl.key-store-type=JKS
server.ssl.key-store=Message.jks
server.ssl.key-store-password=Pwd123
server.ssl.key-alias=Message
server.ssl.key-password=Pwd123

# To enable request logging - RequestLoggingFilterConfig
logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG
logging.file=Message-Send.log
logging.level.tomcat=DEBUG
logging.level.org.springframework.web=DEBUG
debug=true
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.suffix=.log
server.tomcat.accesslog.prefix=message_access_log
server.tomcat.accesslog.file-date-format=.yyyy-MM-dd
server.tomcat.accesslog.directory=/logs
server.connection-timeout=1200000
server.tomcat.maxKeepAliveRequests=1
server.max-http-header-size==8KB
server.tomcat.uri-encoding=UTF-8

logging.level.org.apache.tomcat=DEBUG
logging.level.org.apache.catalina=DEBUG

spring.http.log-request-details=true

logging.level.root=DEBUG

Я вижу журналы

 DEBUG 25377 --- [https-jsse-nio-8444-Acceptor] o.apache.tomcat.util.threads.LimitLatch  : Counting up[https-jsse-nio-8444-Acceptor] latch=1
 DEBUG 25377 --- [https-jsse-nio-8444-exec-5] o.a.tomcat.util.net.SecureNioChannel     : The SNI host name extracted for connection [java.nio.channels.SocketChannel[connected local=/123.456.78.90:8444 remote=/123.456.78.90:55079]] was [null]
 DEBUG 25377 --- [https-jsse-nio-8444-exec-8] o.a.tomcat.util.net.SocketWrapperBase    : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@4dacb2:org.apache.tomcat.util.net.SecureNioChannel@7829e0:java.nio.channels.SocketChannel[connected local=/123.456.78.90:8444 remote=/123.456.78.90:55079]], Read from buffer: [0]
 DEBUG 25377 --- [https-jsse-nio-8444-exec-8] org.apache.tomcat.util.net.NioEndpoint   : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@4dacb2:org.apache.tomcat.util.net.SecureNioChannel@7829e0:java.nio.channels.SocketChannel[connected local=/123.456.78.90:8444 remote=/123.456.78.90:55079]], Read direct from socket: [145]
 DEBUG 25377 --- [https-jsse-nio-8444-exec-8] o.a.coyote.http11.Http11InputBuffer      : Received [POST /SendMessage HTTP/1.1
Host: hostname:8444s
Content-Length: 13385
Connection: keep-alive
Content-Type: text/plain

]
DEBUG 25377 --- [https-jsse-nio-8444-exec-8] o.apache.coyote.http11.Http11Processor   : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@4dacb2:org.apache.tomcat.util.net.SecureNioChannel@7829e0:java.nio.channels.SocketChannel[connected local=/123.456.78.90:8444 remote=/123.456.78.90:55079]], Status in: [OPEN_READ], State out: [CLOSED]
DEBUG 25377 --- [https-jsse-nio-8444-exec-8] org.apache.tomcat.util.net.NioEndpoint   : Calling [org.apache.tomcat.util.net.NioEndpoint@1c9af63].closeSocket([org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@4dacb2:org.apache.tomcat.util.net.SecureNioChannel@7829e0:java.nio.channels.SocketChannel[connected local=/123.456.78.90:8444 remote=/123.456.78.90:55079]])

java.lang.Exception: null
    at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doClose(NioEndpoint.java:1165) [tomcat-embed-core-9.0.22.jar!/:9.0.22]
    at org.apache.tomcat.util.net.SocketWrapperBase.close(SocketWrapperBase.java:394) [tomcat-embed-core-9.0.22.jar!/:9.0.22]
    at org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey(NioEndpoint.java:667) [tomcat-embed-core-9.0.22.jar!/:9.0.22]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) [tomcat-embed-core-9.0.22.jar!/:9.0.22]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.22.jar!/:9.0.22]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_202]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_202]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.22.jar!/:9.0.22]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]

для запроса на обнаружение контроллера, могу видеть сопоставления RequestMappingHandler, как и ожидалось.

DEBUG 25377 --- [https-jsse-nio-8444-exec-4] o.a.coyote.http11.Http11InputBuffer      : Received [POST /SendMessage HTTP/1.1
User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
Host: hostname:8444
Accept: */*
Content-Type: text/plain
Connection: Keep-Alive
Content-Length: 13516
Expect: 100-continue

]
DEBUG 25377 --- [https-jsse-nio-8444-exec-4] org.apache.tomcat.util.http.Parameters   : Set query string encoding to UTF-8
DEBUG 25377 --- [https-jsse-nio-8444-exec-4] o.a.c.authenticator.AuthenticatorBase    : Security checking request POST /SendMessage
DEBUG 25377 --- [https-jsse-nio-8444-exec-4] org.apache.catalina.realm.RealmBase      :   No applicable constraints defined
DEBUG 25377 --- [https-jsse-nio-8444-exec-4] o.a.c.a.jaspic.AuthConfigFactoryImpl     : Loading persistent provider registrations from [/tmp/tomcat.4732512376857604387.8444/conf/jaspic-providers.xml]
DEBUG 25377 --- [https-jsse-nio-8444-exec-4] o.a.c.authenticator.AuthenticatorBase    :  Not subject to any constraint
INFO 25377 --- [https-jsse-nio-8444-exec-4] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
INFO 25377 --- [https-jsse-nio-8444-exec-4] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
DEBUG 25377 --- [https-jsse-nio-8444-exec-4] o.s.web.servlet.DispatcherServlet        : Detected StandardServletMultipartResolver
DEBUG 25377 --- [https-jsse-nio-8444-exec-4] o.s.web.servlet.DispatcherServlet        : enableLoggingRequestDetails='true': request parameters and headers will be shown which may lead to unsafe logging of potentially sensitive data
INFO 25377 --- [https-jsse-nio-8444-exec-4] o.s.web.servlet.DispatcherServlet        : Completed initialization in 7 ms
DEBUG 25377 --- [https-jsse-nio-8444-exec-4] org.apache.tomcat.util.http.Parameters   : Set encoding to UTF-8
DEBUG 25377 --- [https-jsse-nio-8444-exec-4] o.s.web.servlet.DispatcherServlet        : POST "/SendMessage", parameters={}
DEBUG 25377 --- [https-jsse-nio-8444-exec-4] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to public void SendController.SendMessage(java.lang.String,org.springframework.http.HttpMethod,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.net.URISyntaxException

Пожалуйста, ведите меня.

...