Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat随机返回401作为二进制文件的POST请求_Java_Http_Ssl_Tomcat - Fatal编程技术网

Java Tomcat随机返回401作为二进制文件的POST请求

Java Tomcat随机返回401作为二进制文件的POST请求,java,http,ssl,tomcat,Java,Http,Ssl,Tomcat,我在前端运行backbone.js应用程序,在后端运行Tomcat9上的SpringBoot(2.13)应用程序。我们使用的是OpenJDKJava11。(科雷托) 我所有的其他请求(GET和POST)都有效。只有两个上传二进制文件的POST请求有时返回401。我们在后端日志中没有看到任何失败的尝试,只有Tomcat访问日志显示401。请求立即失败。检查Chrome中的请求显示它们看起来是相同的——相同数量的头和相同的值 成功的请求如下所示 [2019年12月3日:13:49:49+0100]1

我在前端运行backbone.js应用程序,在后端运行Tomcat9上的SpringBoot(2.13)应用程序。我们使用的是OpenJDKJava11。(科雷托) 我所有的其他请求(GET和POST)都有效。只有两个上传二进制文件的POST请求有时返回401。我们在后端日志中没有看到任何失败的尝试,只有Tomcat访问日志显示401。请求立即失败。检查Chrome中的请求显示它们看起来是相同的——相同数量的头和相同的值

成功的请求如下所示

[2019年12月3日:13:49:49+0100]172.30.-**用户CN=****,O=****,C=***“POST/rest/taxUpload HTTP/1.1”20061“https://************.eu/”“Mozilla/5.0(Windows NT 6.3;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/78.0.3904.108 Safari/537.36”

未成功的请求如下所示-访问日志中始终有两行

[2019年12月3日:13:50:13+0100]172.30.-**用户-“POST/rest/taxUpload HTTP/1.1”401 1099“https://************.eu/”“Mozilla/5.0(Windows NT 6.3;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/78.0.3904.108 Safari/537.36”

[2019年12月3日:17:13:40+0100]172.30.*.*.--“空-空HTTP/1.1”400 2297“-”

对同一文件、同一浏览器、同一用户发出了请求。 我们使用Tomcat上的DataSource数据库域进行身份验证,我们尝试了TLS1.1、TLS1.2, Tomcat 8.5,不同的浏览器,Tomcat中SSL连接器上的所有缓存和超时设置

正在发送的标题

POST/rest/taxUpload HTTP/1.1

主机:******.net

连接:保持活力

内容长度:160093

接受:/

来源:https://*****.net

X-CSRF-TOKEN:344f5e99-b5e5-49c1-8711-27de638dd739

X-request-With:XMLHttpRequest

用户代理:Mozilla/5.0(Windows NT 6.3;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/78.0.3904.108 Safari/537.36

内容类型:多部分/表单数据;边界=---- WebKitFormBoundaryo5NZhRls0pjEqx8Z

Sec获取站点:相同来源

秒取数模式:cors

推荐人:https://******.net/

接受编码:gzip,deflate,br

接受语言:en-US,en;q=0.9

Cookie:_ga=GA1.2.1549123445.156871033;CSRF-TOKEN=344f5e99-b5e5-49c1-8711-27de638dd739

Tomcat server.xml

<Connector port="443"
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               SSLEnabled="true"
               maxThreads="250"
               scheme="https"
               xpoweredBy="false"
               server="****"
               disableUploadTimeout="true"
               maxSavePostSize="4096"
               clientAuth="false"
               keyAlias="default"
               keyPass="***"
               keystoreFile="***/default.jks"
               keystorePass="****"
               keystoreType="JKS"
               sslProtocol="TLS"
               ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,SSL_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA"
               sslEnabledProtocols="TLSv1.2+TLSv1.1+TLSv1"
               sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation"
               truststoreFile="***.jks"
               truststorePass="****"
               truststoreType="JKS"
               secure="true"
               relaxedQueryChars="[,]"
               acceptCount="250"
               acceptorThreadCount="2"
               compression="on"/>

<Realm className="org.apache.catalina.realm.DataSourceRealm"
                    dataSourceName="jdbc/authority"
                    userTable="users" userNameCol="user_name" userCredCol="user_pass"
                    userRoleTable="user_roles" roleNameCol="role_name" localDataSource="true"/>


您可以添加正在传递的标题吗?另外,您能否详细介绍底层基础设施?spring应用程序部署在哪里?它前面有一个API网关吗?甚至可能添加“错误”代码?通常,当你有“随机”行为时,它与时间有关(例如:你到达超时,连接被切断)。我添加了标题,我们甚至尝试在与后端相同的服务器上运行浏览器,问题仍然发生。至于超时,正如我所说,在发送请求后会立即发生失败。