当前位置: 首页 > 知识库问答 >
问题:

Springboot-解析HTTP请求头时出错(Oauth2 httpsendpoint)

张毅
2023-03-14

当我试图从spring boot应用程序访问OAuth HTTPSendpoint时,我得到了以下错误,但HTTPendpoint工作得非常好

错误:

https://localhost:8084/my-auth/oauth/authorize 
https://localhost:8084/my-auth/oauth/token
 port: 8084
    non-http-port: 8083
    context-path: /my-auth
    ssl:
      key-alias: <my cert alais>
      key-password: <my pasword>
      key-store: <my jks path>
      key-store-type: JKS
      enabled: true

安全java配置

  @Bean
   public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern(contextPath+"/api/v1/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };

        tomcat.addAdditionalTomcatConnectors(redirectConnector());
        return tomcat;
    }
    private Connector redirectConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(unSecuredPort);
        connector.setSecure(false);
        connector.setRedirectPort(securedPort);
        return connector;
    }

POM文件

    <?xml version="1.0" encoding="UTF-8"?>
<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>my-app-name</artifactId>
        <groupId>my.group.id</groupId>
        <version>my-version</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>
    <artifactId>my-app-name</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-ldap</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security.oauth</groupId>
            <artifactId>spring-security-oauth2</artifactId>
            <version>2.0.15.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring4</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

共有1个答案

袁晟
2023-03-14

这不是错误,而是调试消息。

我也击中了这个,我相信正确的答案在这里:

如果没有调试日志级别,EOF将被静默地吞掉。不幸的是,消息上写着“意外的EOF”,因为在这种情况下这是正常的。

   catch (IOException e) {
       if (log.isDebugEnabled()) {
           log.debug(sm.getString("http11processor.header.parse"), e);
       }
       setErrorState(ErrorState.CLOSE_CONNECTION_NOW, e);
       break;
    }

我认为这是完全正常的,因为这个OEFException是我们的同事在apache/tomcat@91b7859中添加的。当ssl连接到非ssl连接器时,在信息级别上记录错误有点激进。

 类似资料:
  • 我正在运行,刚刚检查了服务器日志,并出现了几个类似的错误。我不明白是什么导致了它,因为错误每天都在12/24小时后出现。

  • 问题内容: 我正在处理HTTP流量数据集,该数据集由完整的POST和GET请求组成,如下所示。我已经用Java编写了代码,该代码已经分离了每个请求,并将其另存为数组列表中的字符串元素。 现在我很困惑如何在Java中解析这些原始HTTP请求,有什么方法比手动解析更好吗? 问题答案: 我[正在]处理[HTTP]流量数据集,该数据集由完整的POST和GET请求组成 因此,您想解析包含多个HTTP请求的文

  • 我正在研究HTTP流量数据集,它由完整的POST和GET请求组成,如下所示。我用java编写了代码,将每个请求分开,并将其保存为数组列表中的字符串元素。现在我很困惑如何在java中解析这些原始HTTP请求,有什么方法比手动解析更好吗?

  • 我在Springboot应用程序日志中发现了这样的错误消息: 我知道,这可能是因为有人/某个应用程序使用HTTPS而不是HTTP调用我的endpoint。我可以通过在属性中包含以下内容来记录这些请求: 现在,我收到了未分析的文本,如下所示: 是否可以对其进行解码/解密,并找出实际的API调用是什么?

  • 我有一个接受JSON的应用程序。它有一个带有@RestController的控制器,然后是一个 这“起作用”是因为它接受根据“MyRequest”对象有效的JSON并对其进行处理。我感兴趣的是捕捉JSON无效的时间。 目前,当有不良数据时会发生什么是Spring似乎会向标准输出写入这样的内容: 这一切都很好,但我想看看请求是什么,这是不好的,这样我就可以在源代码端修复它。 我在玩写“Control