Java API For WebSocket(八)服务器安全

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

 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中添加<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,如需转载请自行联系原作者
目录
相关文章
|
2天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
12 4
|
4天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
21 4
|
12天前
|
Java API 数据处理
探索Java中的Lambda表达式与Stream API
【10月更文挑战第22天】 在Java编程中,Lambda表达式和Stream API是两个强大的功能,它们极大地简化了代码的编写和提高了开发效率。本文将深入探讨这两个概念的基本用法、优势以及在实际项目中的应用案例,帮助读者更好地理解和运用这些现代Java特性。
|
18天前
|
Java 大数据 API
别死脑筋,赶紧学起来!Java之Steam() API 常用方法使用,让开发简单起来!
分享Java Stream API的常用方法,让开发更简单。涵盖filter、map、sorted等操作,提高代码效率与可读性。关注公众号,了解更多技术内容。
|
1月前
|
分布式计算 Java 大数据
大数据-147 Apache Kudu 常用 Java API 增删改查
大数据-147 Apache Kudu 常用 Java API 增删改查
25 1
|
24天前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API服务器
【10月更文挑战第12天】使用JavaScript和Node.js构建简单的RESTful API服务器
15 0
|
26天前
|
SQL Java API
深入探索Java的持久化技术——JPA(Java Persistence API)
【10月更文挑战第10天】深入探索Java的持久化技术——JPA(Java Persistence API)
16 0
|
26天前
|
Java API 数据库
深入探索Java的持久化技术——JPA(Java Persistence API)
【10月更文挑战第10天】深入探索Java的持久化技术——JPA(Java Persistence API)
31 0
|
10天前
|
供应链 数据挖掘 API
电商API接口介绍——sku接口概述
商品SKU(Stock Keeping Unit)接口是电商API接口中的一种,专门用于获取商品的SKU信息。SKU是库存量单位,用于区分同一商品的不同规格、颜色、尺寸等属性。通过商品SKU接口,开发者可以获取商品的SKU列表、SKU属性、库存数量等详细信息。
|
11天前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
下一篇
无影云桌面