博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java API For WebSocket(八)服务器安全
阅读量:6605 次
发布时间:2019-06-24

本文共 1611 字,大约阅读时间需要 5 分钟。

 WebSocket终结点使用web容器安全模式进行安全管理,目的是方便websocket开发者声明是否需要访问websocket服务器终结点进行认证,以及哪些人能访问它,是否需要加密连接。websocket在部署中使用ws://URI(第三章,第四章所述)保护模式进行映射,但使用

    8.1 WebSocket身份认证

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

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

    8.2 WebSocket授权

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

    8.3 传输保证

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

    8.4 示例

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<
security-constraint
>
   
<
web-resource-collection
>
       
<
web-resource-name
>LiveQuoteWebSocket</
web-resource-name
>
       
<
description
>Security constraint for live quote websocket endpoint</
description
>
       
<
url-pattern
>/quotes/live</
url-pattern
>
         
<
http-method
>GET</
http-method
>
   
</
web-resource-collection
>
   
<
auth-constraint
>
       
<
description
>definition of which roles may access the quote endpoint</
description
>
         
<
role-name
>GOLD_MEMBER</
role-name
>
         
<
role-name
>PLATINUM_MEMBER</
role-name
>
    
</
auth-constraint
>
   
<
user-data-constraint
>
       
<
description
>WSS required</
description
>   
       
<
transport-guarantee
>CONFIDENTIAL</
transport-guarantee
>
     
</
user-data-constraint
>
 
</
security-constraint
>
本文转自 genuinecx 51CTO博客,原文链接:http://blog.51cto.com/favccxx/1603633,如需转载请自行联系原作者
你可能感兴趣的文章
RHEL/Centos7新功能
查看>>
Drupal 7 数据库 操作
查看>>
第一部分 思科九年 一(1)
查看>>
DBA日常工作职责
查看>>
Redis的持久化
查看>>
linux安装NFS服务器学习
查看>>
Planner .NET日历日程控件能给你的应用程序提供多种日历日程功能
查看>>
我的友情链接
查看>>
Linux压力测试
查看>>
JAVA中的线程机制(二)
查看>>
nginx安装与配置2(转载)
查看>>
Linux下Mongodb安装和启动配置
查看>>
2015 成长计划
查看>>
沈阳一饭店凌晨爆燃,燃气报警器时刻预防
查看>>
Redis 与 数据库处理数据的两种模式
查看>>
VUE2中axios的使用方法
查看>>
assert 断言
查看>>
CS 229 notes Supervised Learning
查看>>
2018.10.27-dtoj-3996-Lesson5!(johnny)
查看>>
DataTable转换成json字符串
查看>>