作者归档
《HttpClient官方文档》2.8 HttpClient代理配置
2.8. HttpClient代理配置
即使HttpClient意识到路由方案和代理连接的复杂性,它也只支持简单直连或单跳代理连接的开箱即用。
通知HttpClient连接到目标主机,最简单的方法是通过设置默认参数的代理:
《Spring Boot官方指南》28.3 -28.4
28.3 User Info RestTemplate的自定义
如果您有一个’user-info-uri’,资源服务器在内部使用’OAuth2RestTemplate’功能来获取用户的身份验证信息。这将提供一个带有’userInfoRestTemplate’主键的’@Bean’,你使用它的时候不需要知道这些。大多数提供程序使用默认就够了,但偶尔你可能需要添加额外的拦截器,或者更改请求验证器(来获取附加在传出请求种令牌)。要添加自定义只需创建一个类型为’UserInfoRestTemplateCustomizer’的bean,它有一个方法,将在bean创建后初始化之前调用。此处定制的rest template仅用于内部身份验证。
阅读全文
《Spring Boot官方指南》28.1 – 28.2
如果您的类路径上有’spring-security-oauth2’,您可以利用一些自动配置来使设置授权或资源服务器变得容易。 详细信息请见 Spring Security OAuth 2 Developers Guide.
《HttpClient官方文档》2.7 连接套接字工厂
HTTP连接在内部使用java.net.Socket类的对象来处理数据在线路上的传输。 然而,他们依靠 ConnectionSocketFactory接口来创建,初始化和连接Socket。HttpClient的使用者能够在运行时,提供应用程序特定的Socket初始化代码。PlainConnectionSocketFactory类是创建和初始化普通(未加密)套接字的默认工厂类。
《HttpClient官方文档》2.6 连接维持存活策略
HTTP规范不会指定长连接存活的时间,以及是否应该维持连接。一些HTTP服务器使用非标准的“Keep-Alive”头部来与客户端通信,以维持连接在服务器端存活的时间(以秒为单位)。如果这个可用, HttpClient将利用它。如果响应中不存在“Keep-Alive”头部,则HttpClient假定连接可以无限期存活。然而,通常许多HTTP服务器在使用中配置为不通知客户端,长连接在闲置一定时期之后会被丢弃,以便节省系统资源。 万一默认策略导致结果过于乐观,可能需要提供维持一个自定义的存活策略。
《Spring Boot官方指南》28.安全
如果Spring Security位于类路径上,那么Web应用程序将默认使用所有HTTP端点上的’basic’身份验证。要向Web应用程序添加方法级安全性,还可以为你想要的设置添加“@EnableGlobalMethodSecurity”。通过点击Spring Security Reference能够找到更多的信息。
《HttpClient官方文档》2.5 连接驱逐策略
经典阻塞I / O模型的主要缺点之一是网络套接字只有在I / O操作阻塞时才能对I / O事件作出反应。当连接释放回管理器时,它可以保持活动,但是它无法监视套接字的状态,并对任何I / O事件做出反应。如果服务器端关闭连接,客户端这边的连接将无法察觉连接状态的变化(并且在通过在末端关闭套接字来做出适当地对应)。
《HttpClient官方文档》2.3 HTTP连接管理
2.3. HTTP 连接管理
2.3.1. 管理连接和连接管理器
HTTP 连接是复杂的、 有状态的、 非线程安全的对象,因此需要恰当的管理才能正常工作。HTTP连接一次只能由一个线程使用。HttpClient使用实现了HttpClientConnectionManager接口,被称为HTTP连接管理器的特殊实体去访问HTTP连接。
阅读全文