xieb
2023-09-23 74d215499e4b6e6d77d9c65de92d04a1d303093a
ws群发问题
3 files modified
11 ■■■■ changed files
src/main/java/com/dji/sample/component/AuthInterceptor.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/component/websocket/config/AuthPrincipalHandler.java 7 ●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/component/websocket/service/impl/WebSocketManageServiceImpl.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/component/AuthInterceptor.java
@@ -21,6 +21,8 @@
    public static final String PARAM_TOKEN = "x-auth-token";
    public static final String WORKSPACE_ID = "workspace-id";
    public static final String TOKEN_CLAIM = "customClaim";
    @Override
src/main/java/com/dji/sample/component/websocket/config/AuthPrincipalHandler.java
@@ -31,6 +31,7 @@
        if (request instanceof ServletServerHttpRequest) {
            HttpServletRequest servletRequest = ((ServletServerHttpRequest) request).getServletRequest();
            String token = servletRequest.getParameter(AuthInterceptor.PARAM_TOKEN);
            String workspaceId = servletRequest.getParameter(AuthInterceptor.WORKSPACE_ID);
            if (!StringUtils.hasText(token)) {
                return false;
@@ -42,6 +43,7 @@
            }
            servletRequest.setAttribute(AuthInterceptor.TOKEN_CLAIM, customClaim.get());
            servletRequest.setAttribute(AuthInterceptor.WORKSPACE_ID, workspaceId);
            return true;
        }
        return false;
@@ -63,7 +65,10 @@
            CustomClaim claim = (CustomClaim) ((ServletServerHttpRequest) request).getServletRequest()
                    .getAttribute(AuthInterceptor.TOKEN_CLAIM);
            return () -> claim.getWorkspaceId() + "/" + claim.getUserType() + "/" + claim.getId();
            String workspaceId = (String) ((ServletServerHttpRequest) request).getServletRequest()
                    .getAttribute(AuthInterceptor.WORKSPACE_ID);
            return () -> workspaceId + "/" + claim.getUserType() + "/" + claim.getId();
        }
        return () -> null;
    }
src/main/java/com/dji/sample/component/websocket/service/impl/WebSocketManageServiceImpl.java
@@ -75,7 +75,7 @@
        return RedisOpsUtils.hashKeys(key)
                .stream()
                .map(SESSIONS::get)
//                .filter(this.getValueWithWorkspace(workspaceId)::contains)
                .filter(this.getValueWithWorkspace(workspaceId)::contains)
                .collect(Collectors.toSet());
    }