Better error message for password changes in wrong REALM
Created by: Alexander Schlemmer
Currently if you want to change a password using the admin tools for a user in REALM PAM, the following exception occurs:
> python -m caosdb.utils.caosdb_admin set_user_password admin
Please type password:
Please type password again:
Traceback (most recent call last):
File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/salexan/Private/Data/Projects/Projekte/caosdb-pylib/src/caosdb/utils/caosdb_admin.py", line 623, in <module>
sys.exit(main())
File "/home/salexan/Private/Data/Projects/Projekte/caosdb-pylib/src/caosdb/utils/caosdb_admin.py", line 619, in main
return args.call(args)
File "/home/salexan/Private/Data/Projects/Projekte/caosdb-pylib/src/caosdb/utils/caosdb_admin.py", line 140, in do_set_user_password
admin._update_user(name=args.user_name, password=password)
File "/home/salexan/Private/Data/Projects/Projekte/caosdb-pylib/src/caosdb/common/administration.py", line 146, in _update_user
return con.put_form_data(entity_uri_segment="User/" + (realm + "/" + name if realm is not None else name), params=params, **kwargs).read()
File "/home/salexan/Private/Data/Projects/Projekte/caosdb-pylib/src/caosdb/connection/connection.py", line 520, in put_form_data
return self._form_data_request(
File "/home/salexan/Private/Data/Projects/Projekte/caosdb-pylib/src/caosdb/connection/connection.py", line 533, in _form_data_request
response = self._http_request(
File "/home/salexan/Private/Data/Projects/Projekte/caosdb-pylib/src/caosdb/connection/connection.py", line 568, in _http_request
return self._retry_http_request(method=method, path=path,
File "/home/salexan/Private/Data/Projects/Projekte/caosdb-pylib/src/caosdb/connection/connection.py", line 608, in _retry_http_request
_handle_response_status(http_response)
File "/home/salexan/Private/Data/Projects/Projekte/caosdb-pylib/src/caosdb/connection/connection.py", line 419, in _handle_response_status
raise ServerErrorException(body=body)
caosdb.exceptions.ServerErrorException: An unexpected server error has occurred.
SRID = c588c124-c5db-4e1f-86d7-ea1b3b919ca6
Please report this server error to and include the SRID into your report.
I learned that this is due to the user admin
being in REALM PAM which is not supported. The error message, however, does not really indicate that.
DOD
- pylib responds "passwords cannot be changed using this tool in REALM PAM".
Changes might be needed in caosdb-server.