Commit 3ae54663 authored by Cédric Le Ninivin's avatar Cédric Le Ninivin

WIP ERP5Security: JWT improvments

parent 696d5969
...@@ -99,7 +99,7 @@ class ERP5JSONWebTokenPlugin(ERP5UserManager): ...@@ -99,7 +99,7 @@ class ERP5JSONWebTokenPlugin(ERP5UserManager):
LOG('ERP5JSONWebTokenPlugin', INFO, LOG('ERP5JSONWebTokenPlugin', INFO,
'No jwt module, install pyjwt package. ' 'No jwt module, install pyjwt package. '
'Authentication disabled.') 'Authentication disabled.')
return DumbHTTPExtractor().extractCredentials(request) return None
creds = {} creds = {}
...@@ -142,6 +142,7 @@ class ERP5JSONWebTokenPlugin(ERP5UserManager): ...@@ -142,6 +142,7 @@ class ERP5JSONWebTokenPlugin(ERP5UserManager):
person_relative_url = data["sub"].encode() person_relative_url = data["sub"].encode()
user = self.getPortalObject().unrestrictedTraverse(person_relative_url) user = self.getPortalObject().unrestrictedTraverse(person_relative_url)
# Activate password to have the real tid
user.password._p_activate() user.password._p_activate()
if data["ptid"] == u64(user.password._p_serial) \ if data["ptid"] == u64(user.password._p_serial) \
and (not origin or data and \ and (not origin or data and \
...@@ -173,13 +174,9 @@ class ERP5JSONWebTokenPlugin(ERP5UserManager): ...@@ -173,13 +174,9 @@ class ERP5JSONWebTokenPlugin(ERP5UserManager):
'Authentication disabled.') 'Authentication disabled.')
return authentication_result return authentication_result
if "person_relative_url" not in credentials: user = self.getUserByLogin(authentication_result[0])[0]
user = self.getUserByLogin(authentication_result[0])[0]
else:
user = self.getPortalObject().unrestrictedTraverse(
credentials["person_relative_url"]
)
# Activate password to have the real tid
user.password._p_activate() user.password._p_activate()
data = { data = {
"sub": user.getRelativeUrl(), "sub": user.getRelativeUrl(),
...@@ -226,7 +223,7 @@ class ERP5JSONWebTokenPlugin(ERP5UserManager): ...@@ -226,7 +223,7 @@ class ERP5JSONWebTokenPlugin(ERP5UserManager):
# Expire default cookie set by default # Expire default cookie set by default
# (even with plugin deactivated) # (even with plugin deactivated)
request.response.expireCookie('__ac') # request.response.expireCookie('__ac')
return authentication_result return authentication_result
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment