j2ee java websocket_Java API For WebSocket(七)Java EE环境

7.1 J2EE环境

websocket应用运行在Java EE平台时,需要一些额外的配置

7.1.1 WebSocket 端点(Endpoints)和依赖注入

WebSocket端点运行在Java EE平台时必须有完整的依赖注入支持,正如CDI规范所述,WebSocket实现了Java EE平台的部分功能,需要使用javax.inject支持属性,方法,构造函数注入。通过注解注入到所有的websocket端点以及使用这些类的拦截器中。这个需求的细节在Java EE平台规范的5.2.5节,实现该需求的部分在5.24节。

7.2 Http Session与认证状态(Authenticated State)之间的关系

为了在每个客户端的web资源(如JSPs,JSFs,Servlets)和服务客户端的websocket终结点共享信息,开发者通常会嵌入websocket服务器终结点到大型web应用中。因为websocket连接是使用http request请求进行初始化的,初始化过程中正在在操作的客户端下的HttpSession和任意的websockets建立的关系就是HttpSession。API允许访问正在进行的握手到唯一的HttpSession对应的同一个客户端。

类似的,如果开放的握手请求已经通过了服务器认证,开放的握手请求API允许开发者查询请求的用户Principal,如果连接是通过请求的客户端建立的,那么websocket实现会将关联websocket会话的用户Principal看做是开放式握手的用户Principal。

当websocket终节点是web应用中的保护资源时,也就是说,只有授权用户才能访问,然后websocket实现必须确保当底层实现决定已验证身份不再有效时,websocket终结点不再保持连接它的同行。但并不是绝对的,比如当用户退出web应用时或者认证超时或者其它原因导致的验证失败等。在这种情况下,websocket实现必须使用websocket关闭状态码1008立即关闭连接。

另一方面,如果websocket终结点在web应用中不是受保护的资源时,开放的握手连接可能是无效的或者改变不需要websocket实现下的操作时,用户身份需要关闭连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值