Skip to content

Commit d35e905

Browse files
committed
address other comments
1 parent feba6b0 commit d35e905

1 file changed

Lines changed: 17 additions & 14 deletions

File tree

irods/auth/pam_password.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,22 @@ def get_pam_password_from_stdin(file_like_object = None):
6666

6767
class _pam_password_ClientAuthState(authentication_base):
6868

69+
# Client define
70+
AUTH_CLIENT_AUTH_REQUEST = "pam_password_auth_client_request"
71+
72+
# Server define
73+
AUTH_AGENT_AUTH_REQUEST = "auth_agent_auth_request"
74+
6975
def __init__(self,*_,check_ssl=True,**_kw):
7076
super().__init__(*_,**_kw)
7177
self.check_ssl = check_ssl
72-
self._l = None
78+
self._list_for_request_result_return = None
7379

7480
def auth_client_start(self, request):
7581

76-
self._l = request.pop(CLIENT_GET_REQUEST_RESULT, False)
82+
# This list reference is popped and cached for the purpose of returning the request_result value
83+
# to the caller upon request.
84+
self._list_for_request_result_return = request.pop(CLIENT_GET_REQUEST_RESULT, False)
7785

7886
if self.check_ssl:
7987
if not isinstance(self.conn.socket, ssl.SSLSocket):
@@ -82,12 +90,13 @@ def auth_client_start(self, request):
8290

8391
resp = request.copy()
8492

85-
obj = resp.pop(FORCE_PASSWORD_PROMPT, None)
93+
password_input_obj = resp.pop(FORCE_PASSWORD_PROMPT, None)
8694

87-
if obj:
88-
obj = None if isinstance(obj,(int,bool)) else obj
95+
if password_input_obj:
96+
if isinstance(password_input_obj,(int,bool)):
97+
password_input_obj = None
8998
# Like with the C++ plugin, we offer the user a chance to enter a password.
90-
resp[AUTH_PASSWORD_KEY] = get_pam_password_from_stdin(file_like_object = obj)
99+
resp[AUTH_PASSWORD_KEY] = get_pam_password_from_stdin(file_like_object = password_input_obj)
91100
else:
92101
# Password from .irodsA in environment.
93102
if self.conn.account._auth_file:
@@ -100,12 +109,6 @@ def auth_client_start(self, request):
100109
resp[__NEXT_OPERATION__] = self.AUTH_CLIENT_AUTH_REQUEST
101110
return resp
102111

103-
# Client define
104-
AUTH_CLIENT_AUTH_REQUEST = "pam_password_auth_client_request"
105-
106-
# Server define
107-
AUTH_AGENT_AUTH_REQUEST = "auth_agent_auth_request"
108-
109112
def pam_password_auth_client_request(self, request):
110113
server_req = request.copy()
111114
server_req[__NEXT_OPERATION__] = self.AUTH_AGENT_AUTH_REQUEST
@@ -123,8 +126,8 @@ def pam_password_auth_client_request(self, request):
123126
msg = "auth storage object was either not set, or allowed to expire prematurely."
124127
raise RuntimeError(msg)
125128

126-
if isinstance(self._l,list):
127-
self._l[:] = (resp["request_result"],)
129+
if isinstance(self._list_for_request_result_return,list):
130+
self._list_for_request_result_return[:] = (resp["request_result"],)
128131

129132
resp[__NEXT_OPERATION__] = self.perform_native_auth
130133
return resp

0 commit comments

Comments
 (0)