sharedkernel 2.6.1__tar.gz → 2.6.2__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.
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/PKG-INFO +3 -1
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/README.md +2 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/setup.py +1 -1
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/config.py +2 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/ip_session_service.py +40 -2
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/logger/logger_service.py +2 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel.egg-info/PKG-INFO +3 -1
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/setup.cfg +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/common.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/data_format_converter.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/database/__init__.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/database/audit_model.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/database/distributed_cache.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/database/mongo_generic_audit_repository.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/database/mongo_generic_repository.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/database/mongo_health_checker.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/database/pagination_response_dto.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/date_converter.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/diff_utils.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/enum/__init__.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/enum/error_code.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/enum/redis_mode_enum.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/enum/sort_order.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/exception/__init__.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/exception/exception.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/exception/exception_handlers.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/file_validation.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/jwt_service.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/logger/log_decorator.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/logger/log_dto.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/logger/log_enums.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/logger/log_info.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/logger/log_middlewares.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/multipart_upload.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/normalizer/__init__.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/normalizer/number_normalizer.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/normalizer/phone_number_normalizer.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/normalizer/string_normalizer.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/objects/__init__.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/objects/base_document.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/objects/json_string_model.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/objects/jwt_model.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/objects/result.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/objects/user_info.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/regex_masking.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/s3_uploader.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/string_extentions.py +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel.egg-info/SOURCES.txt +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel.egg-info/dependency_links.txt +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel.egg-info/requires.txt +0 -0
- {sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sharedkernel
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.2
|
|
4
4
|
Summary: sharekernel is a shared package between all python projects
|
|
5
5
|
Author: Smilinno
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -31,6 +31,8 @@ Dynamic: summary
|
|
|
31
31
|
this is a shared kernel package
|
|
32
32
|
|
|
33
33
|
# Change Log
|
|
34
|
+
### Version 2.6.2
|
|
35
|
+
- Add Verbose
|
|
34
36
|
### Version 2.6.1
|
|
35
37
|
- hotfix namings
|
|
36
38
|
### Version 2.6.0
|
|
@@ -40,7 +40,7 @@ setup(
|
|
|
40
40
|
"redis",
|
|
41
41
|
],
|
|
42
42
|
# *strongly* suggested for sharing
|
|
43
|
-
version="2.6.
|
|
43
|
+
version="2.6.2",
|
|
44
44
|
description="sharekernel is a shared package between all python projects",
|
|
45
45
|
long_description=long_description,
|
|
46
46
|
long_description_content_type="text/markdown",
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
|
|
3
|
+
VERBOSE = True if os.getenv("VERBOSE", "False").lower() == "true" else False
|
|
4
|
+
|
|
3
5
|
# Log *******************************************************************************
|
|
4
6
|
LOG_ENABLE = True if os.getenv("LOG_ENABLE", "False").lower() == "true" else False
|
|
5
7
|
RABBITMQ_USER = os.getenv("RABBITMQ_USER")
|
|
@@ -65,50 +65,88 @@ class IPSessionAuth:
|
|
|
65
65
|
def ip_session_auth(self, request: Request):
|
|
66
66
|
|
|
67
67
|
if not config.IP_SESSION_AUTH_ENABLE:
|
|
68
|
+
if config.VERBOSE:
|
|
69
|
+
print("IP_SESSION_AUTH | OK | IP Session Auth is disabled")
|
|
68
70
|
return
|
|
69
71
|
|
|
72
|
+
if config.VERBOSE:
|
|
73
|
+
print("IP_SESSION_AUTH | INFO | Request Headers: ", request.headers)
|
|
74
|
+
|
|
70
75
|
api_key = request.headers.get(config.APIKEY_HEADER_NAME)
|
|
71
76
|
|
|
72
77
|
if api_key:
|
|
78
|
+
if config.VERBOSE:
|
|
79
|
+
print("IP_SESSION_AUTH | OK | API Key is provided")
|
|
73
80
|
return
|
|
74
81
|
|
|
75
82
|
state = getattr(request.state, "decoded_token", None)
|
|
83
|
+
if config.VERBOSE:
|
|
84
|
+
print("IP_SESSION_AUTH | INFO | State: ", state)
|
|
85
|
+
|
|
76
86
|
if not state:
|
|
87
|
+
if config.VERBOSE:
|
|
88
|
+
print("IP_SESSION_AUTH | ERROR | No state found")
|
|
77
89
|
raise UnAuthorizedException()
|
|
78
90
|
|
|
79
91
|
nameid = state.get("nameid")
|
|
80
92
|
sessionid = state.get("sessionId")
|
|
93
|
+
if config.VERBOSE:
|
|
94
|
+
print("IP_SESSION_AUTH | INFO | Nameid: ", nameid)
|
|
95
|
+
print("IP_SESSION_AUTH | INFO | Sessionid: ", sessionid)
|
|
81
96
|
|
|
82
97
|
if not nameid or not sessionid:
|
|
98
|
+
if config.VERBOSE:
|
|
99
|
+
print("IP_SESSION_AUTH | ERROR | No nameid or sessionid found")
|
|
83
100
|
raise UnAuthorizedException()
|
|
84
101
|
|
|
85
102
|
request_ip = request.headers.get(config.IP_HEADER_NAME)
|
|
103
|
+
|
|
86
104
|
if not request_ip:
|
|
105
|
+
if config.VERBOSE:
|
|
106
|
+
print("IP_SESSION_AUTH | ERROR | No request ip found")
|
|
87
107
|
raise UnAuthorizedException()
|
|
88
108
|
|
|
89
109
|
request_ip = request_ip.strip()
|
|
110
|
+
if config.VERBOSE:
|
|
111
|
+
print("IP_SESSION_AUTH | INFO | Request ip: ", request_ip)
|
|
90
112
|
|
|
91
113
|
if self._is_ip_allowed(request_ip):
|
|
114
|
+
if config.VERBOSE:
|
|
115
|
+
print("IP_SESSION_AUTH | OK | IP is in whitelist")
|
|
92
116
|
return
|
|
93
117
|
|
|
94
118
|
redis_key = f"userId:{nameid}:session:{sessionid}"
|
|
95
119
|
user_data = self.redis.get(redis_key)
|
|
120
|
+
if config.VERBOSE:
|
|
121
|
+
print("IP_SESSION_AUTH | INFO | User data: ", user_data)
|
|
96
122
|
|
|
97
123
|
if not user_data:
|
|
124
|
+
if config.VERBOSE:
|
|
125
|
+
print("IP_SESSION_AUTH | ERROR | No user data found")
|
|
98
126
|
raise UnAuthorizedException()
|
|
99
127
|
|
|
100
128
|
try:
|
|
101
129
|
payload = json.loads(user_data.decode())
|
|
102
130
|
except (ValueError, UnicodeDecodeError, TypeError):
|
|
131
|
+
if config.VERBOSE:
|
|
132
|
+
print("IP_SESSION_AUTH | ERROR | Error decoding user data")
|
|
103
133
|
raise UnAuthorizedException()
|
|
104
134
|
|
|
105
135
|
stored_ip = payload.get("Ip")
|
|
106
|
-
|
|
136
|
+
if config.VERBOSE:
|
|
137
|
+
print("IP_SESSION_AUTH | INFO | Stored ip: ", stored_ip)
|
|
138
|
+
|
|
107
139
|
if not stored_ip:
|
|
140
|
+
if config.VERBOSE:
|
|
141
|
+
print("IP_SESSION_AUTH | ERROR | No stored ip found")
|
|
108
142
|
raise UnAuthorizedException()
|
|
109
143
|
|
|
110
144
|
if stored_ip.strip() != request_ip:
|
|
145
|
+
if config.VERBOSE:
|
|
146
|
+
print("IP_SESSION_AUTH | ERROR | Stored ip does not match request ip")
|
|
111
147
|
raise UnAuthorizedException()
|
|
112
148
|
|
|
113
149
|
lifetime_minutes = self._get_lifetime()
|
|
114
|
-
self.redis.expire(redis_key, lifetime_minutes * 60)
|
|
150
|
+
self.redis.expire(redis_key, lifetime_minutes * 60)
|
|
151
|
+
if config.VERBOSE:
|
|
152
|
+
print("IP_SESSION_AUTH | OK | IP session auth successful")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sharedkernel
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.2
|
|
4
4
|
Summary: sharekernel is a shared package between all python projects
|
|
5
5
|
Author: Smilinno
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -31,6 +31,8 @@ Dynamic: summary
|
|
|
31
31
|
this is a shared kernel package
|
|
32
32
|
|
|
33
33
|
# Change Log
|
|
34
|
+
### Version 2.6.2
|
|
35
|
+
- Add Verbose
|
|
34
36
|
### Version 2.6.1
|
|
35
37
|
- hotfix namings
|
|
36
38
|
### Version 2.6.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/database/mongo_generic_audit_repository.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sharedkernel-2.6.1 → sharedkernel-2.6.2}/sharedkernel/normalizer/phone_number_normalizer.py
RENAMED
|
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
|