catlvsuger

Results 5 comments of catlvsuger

没问题,切回springboot2就正常了

解决: //转成时间判断 Date date = DateUtils.str2Date(xTimestamp, DateUtils.yyyymmddhhmmss.get()); if (date == null || Math.abs(DateUtils.dateDiff('s', new Date(), date)) > MAX_EXPIRE) { log.error("签名验证失败:X-TIMESTAMP已过期,注意系统时间和服务器时间是否有误差!"); throw new IllegalArgumentException("签名验证失败:X-TIMESTAMP已过期"); } public static int dateDiff(char flag, Date...

启动代码:public static void main(String[] args) throws UnknownHostException { String[] newArgs; //减少更新停机时间,切换时间1s左右,带来问题就是端口写死 int defaultPort = 8080; int backupPort = 9999; String ip = InetAddress.getLocalHost().getHostAddress(); if (!isPortInUse(defaultPort)) { newArgs = setNewArgs(args, defaultPort);...

先正常启动个服务8080,再启动个新的服务9999,新服务启动成功前把旧服务停掉,新的服务切换回8080,此时webSocket连接失败,webSocket请求 会进入 DispatcherServlet 在 ResourceHttpRequestHandler 返回 Resource not found, DispatcherServlet:1131 - Completed 404 NOT_FOUND tomcat日志 Processing ErrorPage[errorCode=0, location=/error] 回到 shiroRealm 的 doGetAuthenticationInfo,抛出异常 ShiroConfig 已经加了webSocket过滤,正常应该不会进去Shiro,在第二次启动时重新加载 filterChainDefinitionMap 也没有用...

更新了还是一样,前端重连是成功的,进到 WebsocketFilter校验token通过后,filterChain.doFilter(servletRequest, servletResponse);走后续的 过滤器就出问题了