websocket java8_Java API For WebSocket(八)服务器安全

WebSocket终结点使用web容器安全模式进行安全管理,目的是方便websocket开发者声明是否需要访问websocket服务器终结点进行认证,以及哪些人能访问它,是否需要加密连接。websocket在部署中使用ws://URI(第三章,第四章所述)保护模式进行映射,但使用http://URI相同的主机名称,端口号和路径进行访问,因为这是开放式握手的URL。因此,websocket开发人员可能分配一个身份验证方案,用户角色授权访问和传输保证到达websocket端点。

8.1 WebSocket身份认证

本规范没有定义websocket本身可以验证机制,而是在servlet上建立安全机制,定义websocket必须通过开放式握手请求通过身份验证,旨在发起一个连接之前验证。通常这由web应用中的包含websocket的在开放式握手websocket之前的Http身份认证(也许是基本的或基于表单的)完成的。

如果客户端发送一个没有经过身份认证的开放式握手请求到受安全机制保护的websocket中,websocket实现会返回401(认证失败)到开放式握手请求,不再初始化websocket连接。

8.2 WebSocket授权

websocket授权可以通过web应用程序下的web.xml中添加元素来实现。配置好子元素规则后,websocket握手请求的URI必须匹配配置的URL格式。

8.3 传输保证

没有保证的传输必须要通过容器解释才能到达websocket,如未加密的ws:///连接。加密的传输保证必须通过实现解释,只允许加密的连接(wss://)访问websocket,但这有时需要预认证的请求。

8.4 示例

下面的实例代码是从一个大的web.xml部署文件中截取的一部分,里面包含websocket终结点安全规则的配置。本例中,所有的请求URI格式必须匹配“quotes/live”格式,而且只能通过wss://安全模式访问,这样只有属于黄金会员或者白金会员角色的授权用户才能访问。

LiveQuoteWebSocket

Security constraint for live quote websocket endpoint

/quotes/live

GET

definition of which roles may access the quote endpoint

GOLD_MEMBER

PLATINUM_MEMBER

WSS required

CONFIDENTIAL

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值