jamlib 2.5.0a3.dev0__tar.gz → 2.5.0a3.dev1__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 (86) hide show
  1. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/PKG-INFO +1 -1
  2. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/ext/flask/extenstions.py +57 -11
  3. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jamlib.egg-info/PKG-INFO +1 -1
  4. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/pyproject.toml +1 -1
  5. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/LICENSE.md +0 -0
  6. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/README.md +0 -0
  7. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/__abc_instances__.py +0 -0
  8. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/__deprecated__.py +0 -0
  9. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/__init__.py +0 -0
  10. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/__logger__.py +0 -0
  11. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/__init__.py +0 -0
  12. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/instance.py +0 -0
  13. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/jwt/__init__.py +0 -0
  14. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/jwt/lists/__init__.py +0 -0
  15. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/jwt/lists/json.py +0 -0
  16. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/jwt/lists/redis.py +0 -0
  17. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/jwt/tools.py +0 -0
  18. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/modules.py +0 -0
  19. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/oauth2/__init__.py +0 -0
  20. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/oauth2/builtin/__init__.py +0 -0
  21. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/oauth2/builtin/github.py +0 -0
  22. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/oauth2/builtin/gitlab.py +0 -0
  23. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/oauth2/builtin/google.py +0 -0
  24. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/oauth2/builtin/yandex.py +0 -0
  25. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/oauth2/client.py +0 -0
  26. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/sessions/__init__.py +0 -0
  27. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/sessions/json.py +0 -0
  28. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/aio/sessions/redis.py +0 -0
  29. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/exceptions/__init__.py +0 -0
  30. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/exceptions/jwt.py +0 -0
  31. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/exceptions/oauth2.py +0 -0
  32. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/exceptions/sessions.py +0 -0
  33. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/ext/__init__.py +0 -0
  34. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/ext/fastapi/__init__.py +0 -0
  35. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/ext/flask/__init__.py +0 -0
  36. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/ext/litestar/__init__.py +0 -0
  37. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/ext/litestar/middlewares.py +0 -0
  38. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/ext/litestar/plugins.py +0 -0
  39. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/ext/litestar/value.py +0 -0
  40. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/ext/starlette/__init__.py +0 -0
  41. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/ext/starlette/auth_backends.py +0 -0
  42. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/ext/starlette/value.py +0 -0
  43. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/instance.py +0 -0
  44. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/jwt/__init__.py +0 -0
  45. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/jwt/__utils__.py +0 -0
  46. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/jwt/lists/__abc_list_repo__.py +0 -0
  47. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/jwt/lists/__init__.py +0 -0
  48. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/jwt/lists/json.py +0 -0
  49. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/jwt/lists/redis.py +0 -0
  50. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/jwt/tools.py +0 -0
  51. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/jwt/types.py +0 -0
  52. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/modules.py +0 -0
  53. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/oauth2/__abc_oauth2_repo__.py +0 -0
  54. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/oauth2/__init__.py +0 -0
  55. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/oauth2/builtin/__init__.py +0 -0
  56. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/oauth2/builtin/github.py +0 -0
  57. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/oauth2/builtin/gitlab.py +0 -0
  58. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/oauth2/builtin/google.py +0 -0
  59. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/oauth2/builtin/yandex.py +0 -0
  60. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/oauth2/client.py +0 -0
  61. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/otp/__abc_module__.py +0 -0
  62. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/otp/__init__.py +0 -0
  63. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/otp/hotp.py +0 -0
  64. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/otp/totp.py +0 -0
  65. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/quick/__init__.py +0 -0
  66. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/quick/jwt.py +0 -0
  67. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/sessions/__abc_session_repo__.py +0 -0
  68. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/sessions/__init__.py +0 -0
  69. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/sessions/json.py +0 -0
  70. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/sessions/redis.py +0 -0
  71. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/tests/__init__.py +0 -0
  72. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/tests/clients.py +0 -0
  73. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/tests/fakers.py +0 -0
  74. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/utils/__init__.py +0 -0
  75. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/utils/aes.py +0 -0
  76. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/utils/await_maybe.py +0 -0
  77. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/utils/config_maker.py +0 -0
  78. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/utils/otp_keys.py +0 -0
  79. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/utils/rsa.py +0 -0
  80. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/utils/salt_hash.py +0 -0
  81. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jam/utils/xor.py +0 -0
  82. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jamlib.egg-info/SOURCES.txt +0 -0
  83. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jamlib.egg-info/dependency_links.txt +0 -0
  84. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jamlib.egg-info/requires.txt +0 -0
  85. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/jamlib.egg-info/top_level.txt +0 -0
  86. {jamlib-2.5.0a3.dev0 → jamlib-2.5.0a3.dev1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jamlib
3
- Version: 2.5.0a3.dev0
3
+ Version: 2.5.0a3.dev1
4
4
  Summary: Simple and universal library for authorization.
5
5
  Author-email: Makridenko Adrian <adrianmakridenko@duck.com>, Ksenia Travnikova <kseniatravnikova@duck.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- from typing import Any, Optional, Union
3
+ from typing import Any, Optional
4
4
 
5
5
  from flask import Flask, request
6
6
 
@@ -16,18 +16,16 @@ class JamExtension:
16
16
 
17
17
  def __init__(
18
18
  self,
19
+ jam: Jam,
19
20
  app: Optional[Flask] = None,
20
- config: Union[str, dict[str, Any]] = "pyproject.toml",
21
- pointer: str = "jam",
22
21
  ) -> None:
23
22
  """Constructor.
24
23
 
25
24
  Args:
25
+ jam (jam): Jam instance
26
26
  app (Flask | None): Flask app
27
- config (str | dict[str, Any]): Jam config
28
- pointer (str): Config pointer
29
27
  """
30
- self._jam = Jam(config, pointer)
28
+ self._jam = jam
31
29
  if app:
32
30
  self.init_app(app)
33
31
 
@@ -41,22 +39,20 @@ class JWTExtension(JamExtension):
41
39
 
42
40
  def __init__(
43
41
  self,
42
+ jam: Jam,
44
43
  app: Optional[Flask] = None,
45
- config: Union[str, dict[str, Any]] = "pyproject.toml",
46
- pointer: str = "jam",
47
44
  header_name: Optional[str] = "Authorization",
48
45
  cookie_name: Optional[str] = None,
49
46
  ) -> None:
50
47
  """Constructor.
51
48
 
52
49
  Args:
50
+ jam (Jam): Jam instance
53
51
  app (Flask | None): Flask app
54
- config (str | dict[str, Any]): Jam config
55
- pointer (str): Config pointer
56
52
  header_name (str | None): Header with access token
57
53
  cookie_name (str | None): Cookie with access token
58
54
  """
59
- super().__init__(app, config, pointer)
55
+ super().__init__(jam, app)
60
56
  self.__use_list = getattr(self._jam.module, "list", False)
61
57
  self.header = header_name
62
58
  self.cookie = cookie_name
@@ -87,3 +83,53 @@ class JWTExtension(JamExtension):
87
83
  """Flask app init."""
88
84
  app.before_request(self._get_payload)
89
85
  app.extensions["jam"] = self._jam
86
+
87
+
88
+ class SessionExtension(JamExtension):
89
+ """Session extension for Jam."""
90
+
91
+ def __init__(
92
+ self,
93
+ jam: Jam,
94
+ app: Optional[Flask] = None,
95
+ header_name: Optional[str] = None,
96
+ cookie_name: Optional[str] = "sessionId",
97
+ ) -> None:
98
+ """Constructor.
99
+
100
+ Args:
101
+ jam (Jam): Jam instance
102
+ app (Flask | None): Flask app
103
+ header_name (str | None): Session id header
104
+ cookie_name (str | None): Session id cookie
105
+ """
106
+ super().__init__(jam, app)
107
+ self.header = header_name
108
+ self.cookie = cookie_name
109
+
110
+ def _get_payload(self) -> Optional[dict[str, Any]]:
111
+ session_id = None
112
+ if self.cookie:
113
+ session_id = request.cookies.get(self.cookie)
114
+
115
+ if not session_id and self.header:
116
+ header = request.headers.get(self.header)
117
+ if header and header.startswith("Bearer "):
118
+ session_id = header.split("Bearer ")[1]
119
+
120
+ if not session_id:
121
+ return None
122
+ try:
123
+ payload: Optional[dict[str, Any]] = self._jam.get_session(
124
+ session_id
125
+ )
126
+ except Exception as e:
127
+ logger.warning(str(e))
128
+ return None
129
+
130
+ return payload
131
+
132
+ def init_app(self, app: Flask) -> None:
133
+ """Flask app init."""
134
+ app.before_request(self._get_payload)
135
+ app.extensions["jam"] = self._jam
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jamlib
3
- Version: 2.5.0a3.dev0
3
+ Version: 2.5.0a3.dev1
4
4
  Summary: Simple and universal library for authorization.
5
5
  Author-email: Makridenko Adrian <adrianmakridenko@duck.com>, Ksenia Travnikova <kseniatravnikova@duck.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "jamlib"
3
- version = "2.5.0a3.dev0"
3
+ version = "2.5.0a3.dev1"
4
4
  description = "Simple and universal library for authorization."
5
5
  authors = [
6
6
  {name = "Makridenko Adrian",email = "adrianmakridenko@duck.com"},
File without changes
File without changes
File without changes