Index: src/main/java/com/db/finki/www/build_board/config/WebSocketConfig.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/config/WebSocketConfig.java	(revision 19b635a60e3e3910683672135e9f596124254f90)
+++ src/main/java/com/db/finki/www/build_board/config/WebSocketConfig.java	(revision af4af82cc617f8fbc2b81f85fe772c9a4e0fa159)
@@ -6,4 +6,5 @@
 import org.springframework.messaging.converter.MessageConverter;
 import org.springframework.messaging.simp.config.MessageBrokerRegistry;
+import org.springframework.web.socket.WebSocketHandler;
 import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
 import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
@@ -18,7 +19,9 @@
 
     private final ObjectMapper objectMapper;
+    private final WebSocketPermissionInterceptor  webSocketPermissionInterceptor;
 
-    public WebSocketConfig(ObjectMapper objectMapper) {
+    public WebSocketConfig(ObjectMapper objectMapper, WebSocketPermissionInterceptor webSocketPermissionInterceptor) {
         this.objectMapper = objectMapper;
+        this.webSocketPermissionInterceptor = webSocketPermissionInterceptor;
     }
 
@@ -31,5 +34,5 @@
     @Override
     public void registerStompEndpoints(StompEndpointRegistry registry) {
-        registry.addEndpoint("/channel-websocket");
+        registry.addEndpoint("/channel-websocket").addInterceptors(this.webSocketPermissionInterceptor);
     }
 
Index: src/main/java/com/db/finki/www/build_board/config/WebSocketPermissionInterceptor.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/config/WebSocketPermissionInterceptor.java	(revision af4af82cc617f8fbc2b81f85fe772c9a4e0fa159)
+++ src/main/java/com/db/finki/www/build_board/config/WebSocketPermissionInterceptor.java	(revision af4af82cc617f8fbc2b81f85fe772c9a4e0fa159)
@@ -0,0 +1,83 @@
+package com.db.finki.www.build_board.config;
+
+import com.db.finki.www.build_board.entity.access_managment.Permission;
+import com.db.finki.www.build_board.entity.channel.Channel;
+import com.db.finki.www.build_board.entity.thread.Project;
+import com.db.finki.www.build_board.entity.user_type.BBUser;
+import com.db.finki.www.build_board.service.access_managment.ProjectAccessManagementService;
+import com.db.finki.www.build_board.service.channel.ChannelService;
+import com.db.finki.www.build_board.service.thread.impl.ProjectService;
+import org.apache.coyote.BadRequestException;
+import org.springframework.http.server.ServerHttpRequest;
+import org.springframework.http.server.ServerHttpResponse;
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.http.server.ServletServerHttpRequest;
+import org.springframework.stereotype.Service;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.socket.WebSocketHandler;
+import org.springframework.web.socket.server.HandshakeInterceptor;
+import org.springframework.web.util.UriComponentsBuilder;
+
+import java.net.URI;
+import java.net.URLDecoder;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+
+@Service
+public class WebSocketPermissionInterceptor implements HandshakeInterceptor {
+    private final ProjectAccessManagementService projectAccessManagementService;
+    private final ChannelService channelService;
+    private final ProjectService projectService;
+
+    public WebSocketPermissionInterceptor(ProjectAccessManagementService projectAccessManagementService, ChannelService channelService, ProjectService projectService) {this.projectAccessManagementService = projectAccessManagementService;
+        this.channelService = channelService;
+        this.projectService = projectService;
+    }
+
+    private boolean checkStringParam(String x){
+        return x == null || x.isBlank();
+    }
+
+    @Override
+    public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {
+        URI uri = request.getURI();
+        MultiValueMap<String, String> queryParams =
+                UriComponentsBuilder
+                        .fromUri(uri).build().getQueryParams();
+
+        String projectName =  queryParams.getFirst("project");
+        String channelName =  queryParams.getFirst("channelName");
+
+        if(checkStringParam(projectName) || checkStringParam(channelName)){
+            throw new BadRequestException("You didn't provide the correct params");
+        }
+
+        projectName= URLDecoder.decode(projectName,
+                StandardCharsets.UTF_8);
+        channelName= URLDecoder.decode(channelName,StandardCharsets.UTF_8);
+
+        Project project = projectService.getByTitle(projectName);
+        Channel channel = channelService.getByNameAndProject(channelName,
+                project);
+
+        BBUser user = (BBUser)
+                ((ServletServerHttpRequest) request).getServletRequest().getSession().getAttribute("user");
+
+        if(!projectAccessManagementService.hasPermissionToAccessResource(
+                user.getId(),
+                Permission.WRITE,
+                channel.getProjectResource()
+                        .getId(),
+                project.getId()
+                                                                        )){
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Exception exception) {
+
+    }
+}
Index: src/main/resources/templates/channels/show-channel.html
===================================================================
--- src/main/resources/templates/channels/show-channel.html	(revision 19b635a60e3e3910683672135e9f596124254f90)
+++ src/main/resources/templates/channels/show-channel.html	(revision af4af82cc617f8fbc2b81f85fe772c9a4e0fa159)
@@ -169,5 +169,5 @@
 
     const client = new Client({
-        brokerURL: 'ws://localhost:8080/channel-websocket',
+        brokerURL: `ws://localhost:8080/channel-websocket?project=${projectName}&channelName=${channelName}`,
         onConnect: () => {
             client.subscribe(`/projects/${projectName}/channels/${channelName}`, message => {
