jamlib 3.0.0b13.dev1__tar.gz → 3.0.0b14__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 (100) hide show
  1. {jamlib-3.0.0b13.dev1/src/jamlib.egg-info → jamlib-3.0.0b14}/PKG-INFO +1 -1
  2. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/pyproject.toml +1 -1
  3. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/__init__.py +1 -1
  4. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/ext/starlette/__init__.py +3 -1
  5. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/ext/starlette/backends.py +43 -0
  6. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14/src/jamlib.egg-info}/PKG-INFO +1 -1
  7. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/LICENSE.md +0 -0
  8. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/README.md +0 -0
  9. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/setup.cfg +0 -0
  10. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/__base__.py +0 -0
  11. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/__base_encoder__.py +0 -0
  12. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/__deprecated__.py +0 -0
  13. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/__base__.py +0 -0
  14. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/__init__.py +0 -0
  15. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/instance.py +0 -0
  16. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/jwt/__init__.py +0 -0
  17. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/oauth2/__base__.py +0 -0
  18. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/oauth2/__init__.py +0 -0
  19. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/oauth2/builtin/__init__.py +0 -0
  20. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/oauth2/builtin/github.py +0 -0
  21. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/oauth2/builtin/gitlab.py +0 -0
  22. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/oauth2/builtin/google.py +0 -0
  23. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/oauth2/builtin/yandex.py +0 -0
  24. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/oauth2/client.py +0 -0
  25. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/sessions/__base__.py +0 -0
  26. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/sessions/__init__.py +0 -0
  27. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/sessions/json.py +0 -0
  28. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/aio/sessions/redis.py +0 -0
  29. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/encoders.py +0 -0
  30. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/exceptions/__init__.py +0 -0
  31. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/exceptions/base.py +0 -0
  32. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/exceptions/jwt.py +0 -0
  33. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/exceptions/oauth2.py +0 -0
  34. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/exceptions/paseto.py +0 -0
  35. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/exceptions/plugins.py +0 -0
  36. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/exceptions/sessions.py +0 -0
  37. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/ext/__init__.py +0 -0
  38. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/ext/fastapi/__init__.py +0 -0
  39. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/ext/flask/__init__.py +0 -0
  40. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/ext/flask/extensions.py +0 -0
  41. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/ext/litestar/__init__.py +0 -0
  42. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/ext/litestar/middleware.py +0 -0
  43. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/ext/litestar/objects.py +0 -0
  44. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/ext/litestar/plugins.py +0 -0
  45. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/ext/starlette/objects.py +0 -0
  46. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/instance.py +0 -0
  47. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/jwt/__algorithms__.py +0 -0
  48. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/jwt/__base__.py +0 -0
  49. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/jwt/__init__.py +0 -0
  50. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/jwt/__types__.py +0 -0
  51. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/jwt/lists/__abc_list_repo__.py +0 -0
  52. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/jwt/lists/__init__.py +0 -0
  53. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/jwt/lists/json.py +0 -0
  54. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/jwt/lists/redis.py +0 -0
  55. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/jwt/module.py +0 -0
  56. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/jwt/utils.py +0 -0
  57. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/logger.py +0 -0
  58. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/oauth2/__base__.py +0 -0
  59. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/oauth2/__init__.py +0 -0
  60. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/oauth2/builtin/__init__.py +0 -0
  61. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/oauth2/builtin/github.py +0 -0
  62. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/oauth2/builtin/gitlab.py +0 -0
  63. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/oauth2/builtin/google.py +0 -0
  64. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/oauth2/builtin/yandex.py +0 -0
  65. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/oauth2/client.py +0 -0
  66. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/otp/__base__.py +0 -0
  67. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/otp/__init__.py +0 -0
  68. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/otp/hotp.py +0 -0
  69. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/otp/totp.py +0 -0
  70. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/paseto/__base__.py +0 -0
  71. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/paseto/__init__.py +0 -0
  72. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/paseto/utils.py +0 -0
  73. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/paseto/v1.py +0 -0
  74. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/paseto/v2.py +0 -0
  75. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/paseto/v3.py +0 -0
  76. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/paseto/v4.py +0 -0
  77. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/py.typed +0 -0
  78. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/sessions/__base__.py +0 -0
  79. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/sessions/__init__.py +0 -0
  80. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/sessions/json.py +0 -0
  81. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/sessions/redis.py +0 -0
  82. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/tests/__init__.py +0 -0
  83. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/tests/clients.py +0 -0
  84. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/tests/fakers.py +0 -0
  85. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/__init__.py +0 -0
  86. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/aes.py +0 -0
  87. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/await_maybe.py +0 -0
  88. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/basic_auth.py +0 -0
  89. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/config_maker.py +0 -0
  90. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/ed.py +0 -0
  91. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/otp_keys.py +0 -0
  92. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/rsa.py +0 -0
  93. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/salt_hash.py +0 -0
  94. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/symmetric.py +0 -0
  95. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/xchacha20poly1305.py +0 -0
  96. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jam/utils/xor.py +0 -0
  97. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jamlib.egg-info/SOURCES.txt +0 -0
  98. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jamlib.egg-info/dependency_links.txt +0 -0
  99. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jamlib.egg-info/requires.txt +0 -0
  100. {jamlib-3.0.0b13.dev1 → jamlib-3.0.0b14}/src/jamlib.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jamlib
3
- Version: 3.0.0b13.dev1
3
+ Version: 3.0.0b14
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: Apache-2.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "jamlib"
3
- version = "3.0.0b13.dev1"
3
+ version = "3.0.0b14"
4
4
  description = "Simple and universal library for authorization."
5
5
  authors = [
6
6
  {name = "Makridenko Adrian",email = "adrianmakridenko@duck.com"},
@@ -12,5 +12,5 @@ from jam.encoders import JsonEncoder
12
12
  from jam.instance import Jam
13
13
 
14
14
 
15
- __version__ = "3.0.0b13.dev1"
15
+ __version__ = "3.0.0b14"
16
16
  __all__ = ["Jam", "JsonEncoder", "BaseJam", "BaseEncoder"]
@@ -6,11 +6,13 @@ Starlette docs: https://starlette.dev
6
6
  """
7
7
 
8
8
  from .objects import BaseUser, SimpleUser
9
- from .backends import JWTBackend
9
+ from .backends import JWTBackend, SessionBackend, PASETOBackend
10
10
 
11
11
 
12
12
  __all__ = [
13
13
  "BaseUser",
14
14
  "SimpleUser",
15
15
  "JWTBackend",
16
+ "SessionBackend",
17
+ "PASETOBackend",
16
18
  ]
@@ -11,9 +11,11 @@ from starlette.authentication import (
11
11
  from starlette.authentication import BaseUser as StarletteBaseUser
12
12
  from starlette.requests import HTTPConnection
13
13
 
14
+ from jam.aio.sessions import create_instance as create_session
14
15
  from jam.exceptions import JamStarlettePluginConfigError
15
16
  from jam.ext.starlette.objects import BaseUser, SimpleUser
16
17
  from jam.jwt import JWT
18
+ from jam.paseto import create_instance as create_paseto
17
19
  from jam.utils.config_maker import GENERIC_POINTER, __config_maker__
18
20
 
19
21
 
@@ -101,6 +103,7 @@ class JWTBackend(BaseBackend):
101
103
  async def authenticate( # noqa
102
104
  self, conn: HTTPConnection
103
105
  ) -> tuple[AuthCredentials, StarletteBaseUser] | None:
106
+ setattr(conn.state, "jwt", self._auth)
104
107
  token = self._get_auth_token(conn)
105
108
  if token:
106
109
  data = self._auth.decode(token)
@@ -108,3 +111,43 @@ class JWTBackend(BaseBackend):
108
111
  return AuthCredentials(["authenticated"]), user
109
112
 
110
113
  return AuthCredentials(None), UnauthenticatedUser()
114
+
115
+
116
+ class SessionBackend(BaseBackend):
117
+ """Session backend."""
118
+
119
+ MODULE = staticmethod(create_session)
120
+ _CONFIG_KEY = "sessions"
121
+
122
+ async def authenticate( # noqa
123
+ self, conn: HTTPConnection
124
+ ) -> tuple[AuthCredentials, StarletteBaseUser] | None:
125
+ setattr(conn.state, "session", self._auth)
126
+ session_id = self._get_auth_token(conn)
127
+ if session_id:
128
+ data = await self._auth.get(session_id)
129
+ if data:
130
+ user = self._user.from_payload(data)
131
+ return AuthCredentials(["authenticated"]), user
132
+
133
+ return AuthCredentials(None), UnauthenticatedUser()
134
+
135
+
136
+ class PASETOBackend(BaseBackend):
137
+ """PASETO auth backend."""
138
+
139
+ MODULE = staticmethod(create_paseto)
140
+ _CONFIG_KEY = "paseto"
141
+
142
+ async def authenticate( # noqa
143
+ self, conn: HTTPConnection
144
+ ) -> tuple[AuthCredentials, StarletteBaseUser] | None:
145
+ setattr(conn.state, "paseto", self._auth)
146
+ token = self._get_auth_token(conn)
147
+ if token:
148
+ data = self._auth.decode(token)
149
+ if data:
150
+ user = self._user.from_payload(data)
151
+ return AuthCredentials(["authenticated"]), user
152
+
153
+ return AuthCredentials(None), UnauthenticatedUser()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jamlib
3
- Version: 3.0.0b13.dev1
3
+ Version: 3.0.0b14
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: Apache-2.0
File without changes
File without changes
File without changes