当前位置: 首页 > news >正文

wordpress主题建站微信小程序论坛

wordpress主题建站,微信小程序论坛,网络开发培训,python如何安装wordpress在WebSocket中,如何携带用户的验证信息 一、在OnMessage中进行验证 客户端在连接到服务器后,客户端通过发送消息,服务器端在OnMessage方法中,进行信息验证,这种方式需要将用户身份验证及接收用户消息进行混合处理&am…

在WebSocket中,如何携带用户的验证信息

一、在OnMessage中进行验证

客户端在连接到服务器后,客户端通过发送消息,服务器端在OnMessage方法中,进行信息验证,这种方式需要将用户身份验证及接收用户消息进行混合处理,增加代码复杂度;并且,客户端只要知道请求地址,都可以随意连接服务器,并占用服务器连接数。

二、将Token或验证信息通过路径或请求参数进行添加

使用这种方式,需要将验证信息加入到请求路径或者请求参数中,如:ws://127.0.0.1:8080/websocket/message?token=dsfsdfdsf.sdfasdfsdflkj,安全性较差,需要对验证信息进行加密处理

三、通过Header中的Sec-WebSocket-Protocol进行传输

使用该种方式,需要注意,在响应服务器请求时,需要将该参数原封不动的返回给客户端,否则将报错

若依框架集成WebSocket

1、下载代码并添加到若依的framework包中

2、在启动类中添加@EnableWebSocket

3、修改TokenService.java中的getToken方法,添加获取websocket Header方法

private String getToken(HttpServletRequest request){String token = request.getHeader(header);if(StringUtils.isBlank(token)) {token = request.getHeader("Sec-Websocket-Protocol");}if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX)){token = token.replace(Constants.TOKEN_PREFIX, "");}return token;}

4、修改JwtAuthenticationTokenFilter.java的doFilterInternal方法,为Response添加从Request中获取的Sec-Websocket-Protocol;当然,也可以为该功能添加一个专门的Filter。

如果没有在Response中添加Sec-Websocket-Protocol信息,将在客户端请求连接时报错,导致无法建立连接

    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)throws ServletException, IOException{LoginUser loginUser = tokenService.getLoginUser(request);if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication())){tokenService.verifyToken(loginUser);UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));SecurityContextHolder.getContext().setAuthentication(authenticationToken);}String token = request.getHeader("Sec-Websocket-Protocol");if (StringUtils.isNotNull(token)) {response.addHeader("Sec-Websocket-Protocol", token);}chain.doFilter(request, response);}

5、前端WebSocket客户端添加用户验证信息

ws = new WebSocket(url, [token]);

6、打开测试页面,并修改请求地址,点击连接,连接到websocket服务

已连接到 ws://127.0.0.1:8080/websocket/message

连接成功

http://www.yayakq.cn/news/203515/

相关文章:

  • 做外贸网站案例美食推荐网站模板
  • 海外设计网站建设下载京东商城网上购物
  • 免费做长图的网站网站的策划和建设
  • 学做网站论坛vip账户装修案例app哪个最好
  • 手机网站免费制作平台有哪些合作客户北京网站建设
  • 成都网站建设 哪家比较好苏州 手机网站
  • thinkphp旅游网站源码广州冼村姓什么
  • 咸阳网站开发公司地址用户注册
  • 代做企业网站备案国内简约网站设计
  • wordpress建站苏州wordpress调取缩略图
  • 一般网站有哪些模块html网页设计实验心得
  • 全球建筑网站安徽省建筑工程信息平台
  • 网站平台搭建和维护需要什么杭州房产网官方网站
  • 四川同风源建设工程有限公司网站wordpress 做大型网站
  • 购物网站建设安卓手机网站开发
  • 包头网站开发蚌埠网站建设专业的公司4000-262-
  • 怎样建立商贸网站深圳做外贸的大公司有哪些
  • 桥头仿做网站什么网站做简历好
  • 网站建设视频百度网盘如何自己建设电商网站
  • 网站优化如何做pc指数视频类网站怎么做
  • 网站做外链医院风格 wordpress
  • 网站开发需要哪些语言运维网站建设
  • 邯郸做网站推广的公司织梦网站文章发布模板下载
  • 网站空间文件夹网站域名使用代理
  • WordPress主题开源版宁波正规seo推广公司
  • php网站案例wordpress 内容编辑器
  • 给网站做图网站花瓣飘落的效果怎么做
  • 福州市闽侯县建设局网站营销型网站建设原则
  • 提供做网站企业怎么吧自己电脑做网站
  • 水泵行业网站哪个做的好企业网站推广多少钱