usso 0.24.1__tar.gz → 0.24.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. {usso-0.24.1/src/usso.egg-info → usso-0.24.3}/PKG-INFO +1 -1
  2. {usso-0.24.1 → usso-0.24.3}/pyproject.toml +1 -1
  3. {usso-0.24.1 → usso-0.24.3}/src/usso/django/middleware.py +12 -11
  4. {usso-0.24.1 → usso-0.24.3/src/usso.egg-info}/PKG-INFO +1 -1
  5. {usso-0.24.1 → usso-0.24.3}/LICENSE.txt +0 -0
  6. {usso-0.24.1 → usso-0.24.3}/README.md +0 -0
  7. {usso-0.24.1 → usso-0.24.3}/setup.cfg +0 -0
  8. {usso-0.24.1 → usso-0.24.3}/src/usso/__init__.py +0 -0
  9. {usso-0.24.1 → usso-0.24.3}/src/usso/api.py +0 -0
  10. {usso-0.24.1 → usso-0.24.3}/src/usso/async_api.py +0 -0
  11. {usso-0.24.1 → usso-0.24.3}/src/usso/async_session.py +0 -0
  12. {usso-0.24.1 → usso-0.24.3}/src/usso/b64tools.py +0 -0
  13. {usso-0.24.1 → usso-0.24.3}/src/usso/core.py +0 -0
  14. {usso-0.24.1 → usso-0.24.3}/src/usso/django/__init__.py +0 -0
  15. {usso-0.24.1 → usso-0.24.3}/src/usso/exceptions.py +0 -0
  16. {usso-0.24.1 → usso-0.24.3}/src/usso/fastapi/__init__.py +0 -0
  17. {usso-0.24.1 → usso-0.24.3}/src/usso/fastapi/integration.py +0 -0
  18. {usso-0.24.1 → usso-0.24.3}/src/usso/package_data.dat +0 -0
  19. {usso-0.24.1 → usso-0.24.3}/src/usso/session.py +0 -0
  20. {usso-0.24.1 → usso-0.24.3}/src/usso.egg-info/SOURCES.txt +0 -0
  21. {usso-0.24.1 → usso-0.24.3}/src/usso.egg-info/dependency_links.txt +0 -0
  22. {usso-0.24.1 → usso-0.24.3}/src/usso.egg-info/entry_points.txt +0 -0
  23. {usso-0.24.1 → usso-0.24.3}/src/usso.egg-info/requires.txt +0 -0
  24. {usso-0.24.1 → usso-0.24.3}/src/usso.egg-info/top_level.txt +0 -0
  25. {usso-0.24.1 → usso-0.24.3}/tests/test_api.py +0 -0
  26. {usso-0.24.1 → usso-0.24.3}/tests/test_core.py +0 -0
  27. {usso-0.24.1 → usso-0.24.3}/tests/test_simple.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: usso
3
- Version: 0.24.1
3
+ Version: 0.24.3
4
4
  Summary: A plug-and-play client for integrating universal single sign-on (SSO) with Python frameworks, enabling secure and seamless authentication across microservices.
5
5
  Author-email: Mahdi Kiani <mahdikiany@gmail.com>
6
6
  Maintainer-email: Mahdi Kiani <mahdikiany@gmail.com>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "usso"
7
- version = "0.24.1"
7
+ version = "0.24.3"
8
8
  description = "A plug-and-play client for integrating universal single sign-on (SSO) with Python frameworks, enabling secure and seamless authentication across microservices."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -19,21 +19,13 @@ class USSOAuthenticationMiddleware(MiddlewareMixin):
19
19
  Middleware to authenticate users by JWT token and create or return a user in the database.
20
20
  """
21
21
  try:
22
- logger.debug("Processing request in USSO authentication middleware")
23
-
24
- # Extract and verify JWT from Authorization header or cookies
25
- user_data = self.jwt_access_security(request)
22
+ if request.user.is_authenticated:
23
+ return
26
24
 
25
+ user_data = self.jwt_access_security_none(request)
27
26
  if user_data:
28
- # Check database for the user or create a new one
29
27
  user = self.get_or_create_user(user_data)
30
- # Attach the user to the request
31
28
  request.user = user
32
- else:
33
- return JsonResponse(
34
- {"error": "Authentication failed: No valid JWT token provided."},
35
- status=401,
36
- )
37
29
  except USSOException as e:
38
30
  # Handle any errors raised by USSO authentication
39
31
  return JsonResponse({"error": str(e)}, status=401)
@@ -49,6 +41,15 @@ class USSOAuthenticationMiddleware(MiddlewareMixin):
49
41
 
50
42
  return request.COOKIES.get("usso_access_token")
51
43
 
44
+ def jwt_access_security_none(self, request: HttpRequest) -> UserData | None:
45
+ """Return the user associated with a token value."""
46
+ token = self.get_request_token(request)
47
+ if not token:
48
+ return None
49
+ return Usso(jwks_url=settings.USSO_JWK_URL).user_data_from_token(
50
+ token, raise_exception=False
51
+ )
52
+
52
53
  def jwt_access_security(self, request: HttpRequest) -> UserData | None:
53
54
  """Return the user associated with a token value."""
54
55
  token = self.get_request_token(request)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: usso
3
- Version: 0.24.1
3
+ Version: 0.24.3
4
4
  Summary: A plug-and-play client for integrating universal single sign-on (SSO) with Python frameworks, enabling secure and seamless authentication across microservices.
5
5
  Author-email: Mahdi Kiani <mahdikiany@gmail.com>
6
6
  Maintainer-email: Mahdi Kiani <mahdikiany@gmail.com>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes