我目前有:
我想知道从GUI应用程序与REST API交流的最佳方式是什么。 REST API是无状态的,但GUI应用程序是有状态的,必须通过每个休息请求的身份验证信息(基本身份验证)。由于我们必须支持数百个并发用户,因此我们希望为连接池配置Jersey客户端。
我们可以通过使用Apache的HTTP客户端配置Jersey客户端来处理连接池。可以使用HTTPBasicAuthFilter处理身份验证,HTTPBasicAuthFilter将自动为每个请求发送相同的凭据。
但是,我不确定最好为整个GUI应用程序配置1个客户端,还是每个会话创建一个新客户端。
使用1个应用程序客户端,连接池是有意义的,但是我必须找到一种方法来为每个请求设置正确的身份验证信息。 HTTPBasicAuthFilter假设凭证永远不会改变,这不是我们的应用程序。
如果我每个会话使用新的HTTPBasicAuthFilter创建一个客户端,那么身份验证很简单,但我不会从连接池中获得任何好处,因为每个客户端都有自己的池。
我怀疑我是第一个遇到这种情况的人,所以我很好奇其他人是如何解决这个问题的。
亲切的问候,
格伦
答案 0 :(得分:1)
您可以在WebResource级别附加客户端过滤器。因此,您可以将HTTPBasicAuthFilter附加到单个共享客户端和每会话WebResource对象。