springboot websocket怎么通过shiro验证

shiro有几种认证方式,这里只说JSESSIONID方式,正常http请求JSESSIONID是放在cookie中传过去的,但是websocket貌似不能用header和cookie传递参数,所以只能想到用url传参
试了下这种方式:

ws://localhost:8730/deploy?jsessionid=43577A8AFB2A95A59BA10AABBD0F6AEB

非常遗憾,不行,只能看源码了,
springboot websocket怎么通过shiro验证_第1张图片
org.apache.catalina.connector.CoyoteAdapter
确实是有从url读的
springboot websocket怎么通过shiro验证_第2张图片
通过断点发现是需要“;” 分割符的,不清楚为啥这么设计,试一下

ws://localhost:8730/deploy;jsessionid=43577A8AFB2A95A59BA10AABBD0F6AEB

成功!!

你可能感兴趣的:(java)