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

在Jetty中拦截HTTP连接

贺功
2023-03-14

我正在使用servlet 3.0和Jetty编写HTTPS代理服务器。

如何在码头处理HTTPS Connect?

目前我正在使用jetty maven插件,我的插件配置如下-

<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
    <scanIntervalSeconds>10</scanIntervalSeconds>
    <webApp>
        <contextPath>/</contextPath>        
    </webApp>
    <scanIntervalSeconds>1</scanIntervalSeconds>    
    <connectors>
        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <port>9090</port>
            <maxIdleTime>60000</maxIdleTime>
        </connector>
        <connector implementation="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
            <port>9090</port>
            <keystore>src/keystore.jks</keystore>
            <keyPassword>test</keyPassword>
            <password>test</password> 
        </connector>        
    </connectors>    
</configuration>
/plugin>

是-我想在同一端口上处理HTTP和HTTPS。当我启动Jetty时,一切都很好-

2013-04-21 15:15:03.750:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:9090
2013-04-21 15:15:03.912:INFO:oejus.SslContextFactory:Enabled Protocols [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2] of [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]
2013-04-21 15:15:03.917:INFO:oejs.AbstractConnector:Started SslSelectChannelConnector@0.0.0.0:9090
Started Jetty Server

我对doGet和doPost进行了@覆盖,当我发送HTTP请求时,这两种方法都很好。但是当客户端发送HTTPS Connect时,它们都不会被触发。我想拦截HTTPS Connect,以便我可以检查SSL流量。

你知道怎么做吗?

更新-我想我发现了第一个问题。即使我在日志中看到SelectChannelConnector和SslSelectChannelConnector在端口9090上启动,SSL连接器也没有被触发。

所以我的问题是-是否可以使用servlet 3.0和Jetty在同一端口上处理HTTP和HTTPS?

共有1个答案

有凯泽
2023-03-14

不,这是不可能的(事实上这是可能的,但不应该是)。每个连接器都需要自己的端口。

但是,您可以使用web中的安全约束将所有连接到http侦听器的连接重定向到https端口。xml。然而,这似乎不是你想要的。

我想知道为什么当您尝试在一个端口上设置两个连接器时,jetty在启动时不引发任何异常。将对此进行验证。

 类似资料:
  • 配置拦截器 declarations: [ AppComponent ], HttpClientModule ], providers: [ [ { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true } ] bootstrap:

  • 本文向大家介绍详解AngularJS中的http拦截,包括了详解AngularJS中的http拦截的使用技巧和注意事项,需要的朋友参考一下 http拦截,即$http服务允许我们与服务端交互,有时候我们希望在发出请求之前以及收到响应之后做些事情。 $httpProvider包含了一个interceptors的数组。 我们这样创建一个interceptor。 接着注册interceptor.  以下

  • 问题内容: 我正在尝试使用s拦截器为我的网站编写一个通用错误处理程序,但它们似乎无法执行我想做的事情。 我放置了拦截器,但是当服务器处于脱机状态/未响应时,它们从未被调用(net :: ERR_CONNECTION_REFUSED)。我了解为什么会发生这种情况,因此没有响应可拦截。 我想知道是否有捕获这些错误的一个通用的方法,比听其他的回调为每个请求。 问题答案: 您可能可以检查ResponseE

  • 如何在请求从DTO转换为JSON字符串之后拦截它们? 反过来,在响应从JSON转换为dto之前拦截它们。

  • 问题内容: 我似乎无法让$ httpProvider.interceptors实际进行拦截。我在JSFiddle上创建了一个示例,该示例记录了拦截器运行的时间以及$ http响应成功的时间。在成功返回响应之后,将运行请求拦截器。这似乎有些倒退。 我不能使用transformRequest,因为我需要更改配置中的参数。该部分未显示在示例中。 我正在使用AngularJS 1.1.5 http://j

  • 问题内容: 是否可以为ng-click编写拦截器?我有一个按钮或链接,导致后端对象的删除。我想通过将属性添加到按钮/链接来创建一个确认对话框(模式)。例如: AngularJS有可能吗?有没有更好的方法可以解决此问题? 编辑 deleteIt方法驻留在不同的控制器中。 谢谢 问题答案: 我在下面放了一个示例指令: http://plnkr.co/edit/GJwK7ldGa9LY90bMuOfl?