Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion DevUtils/nginx/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# WebSocket specific
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
Expand Down
87 changes: 0 additions & 87 deletions swirl/consumers.py

This file was deleted.

60 changes: 0 additions & 60 deletions swirl/middleware.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
from rest_framework.authtoken.models import Token
from django.http import HttpResponseForbidden, HttpResponse
from swirl.models import Search
from swirl.authenticators import *
from channels.middleware import BaseMiddleware
from channels.db import database_sync_to_async
from urllib.parse import parse_qs
from django.core.exceptions import ObjectDoesNotExist
import json
import yaml
import jwt
Expand Down Expand Up @@ -59,61 +54,6 @@ def __call__(self, request):
logger.debug(f'SpyglassAuthenticatorsMiddleware - No action')
return self.get_response(request)


class WebSocketTokenMiddleware(BaseMiddleware):
async def __call__(self, scope, receive, send):
query_string = scope.get("query_string", b"").decode("utf-8")
query_params = parse_qs(query_string)
token_key = query_params.get("token", [""])[0]
rag_query_items = query_params.get("rag_items", [""])[0]
if rag_query_items:
scope['rag_query_items'] = rag_query_items.split(',')
else:
scope['rag_query_items'] = []

### DJANGO TOKEN CHECKING

if token_key:
logger.debug(f'WebSocketTokenMiddleware - Token exists')
user = await self.get_user_from_token(token_key)
if user:
logger.debug(f'WebSocketTokenMiddleware - Token is valid')
scope["user"] = user
print(user.username)

search_id = query_params.get("search_id", [""])[0]
if search_id:
logger.debug(f'WebSocketTokenMiddleware - Search ID exists')
found = await self.get_search_by_id_and_user(search_id, user)
if found:
logger.debug(f'WebSocketTokenMiddleware - Search for current user {user} was found')
scope["search_id"] = search_id
else:
logger.debug(f'WebSocketTokenMiddleware - Search for current user {user} was not found')
else:
logger.debug(f'WebSocketTokenMiddleware - Search ID does not exist')
else:
logger.debug(f'WebSocketTokenMiddleware - Token is not valid')
else:
logger.debug(f'WebSocketTokenMiddleware - Token does not exist')

return await super().__call__(scope, receive, send)


@database_sync_to_async
def get_user_from_token(self, token_key):
try:
return Token.objects.get(key=token_key).user
except Token.DoesNotExist:
return None

@database_sync_to_async
def get_search_by_id_and_user(self, search_id, user):
try:
return Search.objects.filter(pk=search_id, owner=user).exists()
except ObjectDoesNotExist:
return None

class SwaggerMiddleware:
def __init__(self, get_response):
self.get_response = get_response
Expand Down
15 changes: 2 additions & 13 deletions swirl_server/routing.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,6 @@
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
from swirl.middleware import WebSocketTokenMiddleware # Import the TokenAuthMiddleware
from django.urls import path
from channels.routing import ProtocolTypeRouter
from django.core.asgi import get_asgi_application
from swirl.consumers import Consumer

application = ProtocolTypeRouter({
'http': get_asgi_application(),
'websocket': WebSocketTokenMiddleware(
AuthMiddlewareStack(
URLRouter([
path('chatgpt-data', Consumer.as_asgi()),
])
)
)
'http': get_asgi_application()
})