jamlib 3.0.0b12.dev2__tar.gz → 3.0.0b12.dev4__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.0b12.dev2/src/jamlib.egg-info → jamlib-3.0.0b12.dev4}/PKG-INFO +1 -1
  2. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/pyproject.toml +1 -1
  3. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/__init__.py +1 -1
  4. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/ext/litestar/__init__.py +9 -1
  5. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/ext/litestar/middleware.py +23 -0
  6. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/ext/litestar/plugins.py +49 -3
  7. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4/src/jamlib.egg-info}/PKG-INFO +1 -1
  8. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/LICENSE.md +0 -0
  9. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/README.md +0 -0
  10. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/setup.cfg +0 -0
  11. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/__base__.py +0 -0
  12. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/__base_encoder__.py +0 -0
  13. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/__deprecated__.py +0 -0
  14. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/__base__.py +0 -0
  15. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/__init__.py +0 -0
  16. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/instance.py +0 -0
  17. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/jwt/__init__.py +0 -0
  18. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/oauth2/__base__.py +0 -0
  19. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/oauth2/__init__.py +0 -0
  20. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/oauth2/builtin/__init__.py +0 -0
  21. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/oauth2/builtin/github.py +0 -0
  22. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/oauth2/builtin/gitlab.py +0 -0
  23. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/oauth2/builtin/google.py +0 -0
  24. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/oauth2/builtin/yandex.py +0 -0
  25. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/oauth2/client.py +0 -0
  26. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/sessions/__base__.py +0 -0
  27. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/sessions/__init__.py +0 -0
  28. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/sessions/json.py +0 -0
  29. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/aio/sessions/redis.py +0 -0
  30. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/encoders.py +0 -0
  31. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/exceptions/__init__.py +0 -0
  32. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/exceptions/base.py +0 -0
  33. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/exceptions/jwt.py +0 -0
  34. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/exceptions/oauth2.py +0 -0
  35. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/exceptions/paseto.py +0 -0
  36. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/exceptions/plugins.py +0 -0
  37. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/exceptions/sessions.py +0 -0
  38. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/ext/__init__.py +0 -0
  39. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/ext/fastapi/__init__.py +0 -0
  40. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/ext/flask/__init__.py +0 -0
  41. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/ext/flask/extensions.py +0 -0
  42. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/ext/litestar/objects.py +0 -0
  43. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/ext/starlette/__init__.py +0 -0
  44. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/ext/starlette/auth_backends.py +0 -0
  45. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/ext/starlette/value.py +0 -0
  46. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/instance.py +0 -0
  47. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/jwt/__algorithms__.py +0 -0
  48. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/jwt/__base__.py +0 -0
  49. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/jwt/__init__.py +0 -0
  50. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/jwt/__types__.py +0 -0
  51. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/jwt/lists/__abc_list_repo__.py +0 -0
  52. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/jwt/lists/__init__.py +0 -0
  53. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/jwt/lists/json.py +0 -0
  54. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/jwt/lists/redis.py +0 -0
  55. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/jwt/module.py +0 -0
  56. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/jwt/utils.py +0 -0
  57. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/logger.py +0 -0
  58. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/oauth2/__base__.py +0 -0
  59. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/oauth2/__init__.py +0 -0
  60. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/oauth2/builtin/__init__.py +0 -0
  61. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/oauth2/builtin/github.py +0 -0
  62. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/oauth2/builtin/gitlab.py +0 -0
  63. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/oauth2/builtin/google.py +0 -0
  64. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/oauth2/builtin/yandex.py +0 -0
  65. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/oauth2/client.py +0 -0
  66. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/otp/__base__.py +0 -0
  67. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/otp/__init__.py +0 -0
  68. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/otp/hotp.py +0 -0
  69. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/otp/totp.py +0 -0
  70. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/paseto/__base__.py +0 -0
  71. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/paseto/__init__.py +0 -0
  72. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/paseto/utils.py +0 -0
  73. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/paseto/v1.py +0 -0
  74. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/paseto/v2.py +0 -0
  75. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/paseto/v3.py +0 -0
  76. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/paseto/v4.py +0 -0
  77. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/py.typed +0 -0
  78. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/sessions/__base__.py +0 -0
  79. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/sessions/__init__.py +0 -0
  80. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/sessions/json.py +0 -0
  81. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/sessions/redis.py +0 -0
  82. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/tests/__init__.py +0 -0
  83. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/tests/clients.py +0 -0
  84. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/tests/fakers.py +0 -0
  85. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/__init__.py +0 -0
  86. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/aes.py +0 -0
  87. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/await_maybe.py +0 -0
  88. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/basic_auth.py +0 -0
  89. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/config_maker.py +0 -0
  90. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/ed.py +0 -0
  91. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/otp_keys.py +0 -0
  92. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/rsa.py +0 -0
  93. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/salt_hash.py +0 -0
  94. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/symmetric.py +0 -0
  95. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/xchacha20poly1305.py +0 -0
  96. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jam/utils/xor.py +0 -0
  97. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jamlib.egg-info/SOURCES.txt +0 -0
  98. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jamlib.egg-info/dependency_links.txt +0 -0
  99. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/src/jamlib.egg-info/requires.txt +0 -0
  100. {jamlib-3.0.0b12.dev2 → jamlib-3.0.0b12.dev4}/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.0b12.dev2
3
+ Version: 3.0.0b12.dev4
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.0b12.dev2"
3
+ version = "3.0.0b12.dev4"
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.0b12.dev2"
15
+ __version__ = "3.0.0b12.dev4"
16
16
  __all__ = ["Jam", "JsonEncoder", "BaseJam", "BaseEncoder"]
@@ -12,7 +12,13 @@ from .objects import (
12
12
  Token
13
13
  )
14
14
 
15
- from .plugins import BasePlugin, JamJWTPlugin, JamSessionPlugin
15
+ from .plugins import (
16
+ BasePlugin,
17
+ JamJWTPlugin,
18
+ JamSessionPlugin,
19
+ JamPASETOPlugin,
20
+ JamOAuth2Plugin,
21
+ )
16
22
 
17
23
  __all__ = [
18
24
  "BaseUser",
@@ -21,4 +27,6 @@ __all__ = [
21
27
  "BasePlugin",
22
28
  "JamJWTPlugin",
23
29
  "JamSessionPlugin",
30
+ "JamPASETOPlugin",
31
+ "JamOAuth2Plugin",
24
32
  ]
@@ -12,6 +12,7 @@ from jam.aio.sessions.__base__ import BaseAsyncSessionModule
12
12
  from jam.exceptions import JamLitestarPluginConfigError, JamLitestarPluginError
13
13
  from jam.ext.litestar.objects import BaseUser, Token
14
14
  from jam.jwt import JWT
15
+ from jam.paseto import BasePASETO
15
16
 
16
17
 
17
18
  class BaseMiddleware(AbstractAuthenticationMiddleware):
@@ -79,3 +80,25 @@ class SessionMiddleware(BaseMiddleware):
79
80
  return AuthenticationResult(user, token)
80
81
  except Exception as e:
81
82
  raise JamLitestarPluginError(message=str(e))
83
+
84
+
85
+ class PASETOMiddleware(BaseMiddleware):
86
+ """Middleware for PASETO."""
87
+
88
+ AUTH_MODULE: BasePASETO
89
+
90
+ async def authenticate_request( # noqa
91
+ self, connection: ASGIConnection
92
+ ) -> AuthenticationResult:
93
+ token = self._get_auth_token(connection)
94
+ token_model = Token(token=token)
95
+ if not token:
96
+ return AuthenticationResult(None, auth=token_model)
97
+ try:
98
+ data = self.AUTH_MODULE.decode(token)
99
+ if not data:
100
+ return AuthenticationResult(None, auth=token_model)
101
+ user = self.USER.from_payload(data)
102
+ return AuthenticationResult(user, token)
103
+ except Exception as e:
104
+ raise JamLitestarPluginError(message=str(e))
@@ -7,15 +7,18 @@ from litestar.config.app import AppConfig
7
7
  from litestar.di import Provide
8
8
  from litestar.plugins import InitPlugin
9
9
 
10
- from jam.aio.sessions import create_instance
10
+ from jam.aio.sessions import create_instance as create_session
11
11
  from jam.exceptions import JamLitestarPluginConfigError
12
12
  from jam.ext.litestar.middleware import (
13
13
  BaseMiddleware,
14
14
  JWTMiddleware,
15
+ PASETOMiddleware,
15
16
  SessionMiddleware,
16
17
  )
17
18
  from jam.ext.litestar.objects import BaseUser
18
19
  from jam.jwt import JWT
20
+ from jam.oauth2 import create_instance as create_oauth2
21
+ from jam.paseto import create_instance as create_paseto
19
22
  from jam.utils.config_maker import GENERIC_POINTER, __config_maker__
20
23
 
21
24
 
@@ -92,9 +95,52 @@ class JamJWTPlugin(BasePlugin):
92
95
 
93
96
 
94
97
  class JamSessionPlugin(BasePlugin):
95
- """Redis sessions plugin for litestar."""
98
+ """Sessions plugin for litestar."""
96
99
 
97
- MODULE = staticmethod(create_instance)
100
+ MODULE = staticmethod(create_session)
98
101
  _MIDDLEWARE = SessionMiddleware
99
102
  _DI_KEY = "session"
100
103
  _CONFIG_KEY = "sessions"
104
+
105
+
106
+ class JamPASETOPlugin(BasePlugin):
107
+ """PASETO plugin for litestar."""
108
+
109
+ MODULE = staticmethod(create_paseto)
110
+ _MIDDLEWARE = PASETOMiddleware
111
+ _DI_KEY = "paseto"
112
+ _CONFIG_KEY = "paseto"
113
+
114
+
115
+ class JamOAuth2Plugin(BasePlugin):
116
+ """OAuth2 plugin."""
117
+
118
+ MODULE = staticmethod(create_oauth2)
119
+ _DI_KEY = "oauth2"
120
+ _CONFIG_KEY = "oauth2"
121
+
122
+ def __init__(
123
+ self,
124
+ config: str | dict[str, Any] | None = None,
125
+ pointer: str = GENERIC_POINTER,
126
+ **kwargs,
127
+ ) -> None:
128
+ """Initialize the OAuth2 plugin.
129
+
130
+ Args:
131
+ config (str | dict[str, Any] | None): The configuration for the OAuth2 plugin.
132
+ pointer (str): The pointer to the configuration in the app config.
133
+ **kwargs: Additional keyword arguments.
134
+ """
135
+ _config: dict[str, Any] | None = (
136
+ __config_maker__(config, pointer) if config else None
137
+ )
138
+
139
+ params = _config.pop(self._CONFIG_KEY) if _config else kwargs
140
+ self._setup_config(params)
141
+
142
+ def on_app_init(self, app_config: AppConfig) -> AppConfig: # noqa
143
+ app_config.dependencies[self._DI_KEY] = Provide(
144
+ lambda: self._auth, sync_to_thread=True
145
+ )
146
+ return app_config
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jamlib
3
- Version: 3.0.0b12.dev2
3
+ Version: 3.0.0b12.dev4
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