[pywbem] fixed authentication issue for root
Michal Minar
miminar at fedoraproject.org
Mon Feb 24 10:51:29 UTC 2014
commit 3932b8be2f01173bdd8f1c3e9d22b368d7bc7795
Author: Michal Minar <miminar at redhat.com>
Date: Mon Feb 24 11:46:11 2014 +0100
fixed authentication issue for root
Resolves: bz#1041578
Resolves: rhbz#1069149
pywbem-20131121-local_root_auth.patch | 50 +++++++++++++++++++++++++++++++++
pywbem.spec | 7 ++++-
2 files changed, 56 insertions(+), 1 deletions(-)
---
diff --git a/pywbem-20131121-local_root_auth.patch b/pywbem-20131121-local_root_auth.patch
new file mode 100644
index 0000000..ce80f39
--- /dev/null
+++ b/pywbem-20131121-local_root_auth.patch
@@ -0,0 +1,50 @@
+Index: pywbem-20131121/cim_http.py
+===================================================================
+--- pywbem-20131121.orig/cim_http.py
++++ pywbem-20131121/cim_http.py
+@@ -42,6 +42,33 @@ class AuthError(Error):
+ """This exception is raised when an authentication error (401) occurs."""
+ pass
+
++try:
++ import pwd
++ def get_user_name(uid=None):
++ """Return user name for given uid.
++ :param int uid: User id of user whose name is desired.
++ If not given, current user will be assumed.
++ """
++ try:
++ if uid is None:
++ uid = os.getuid()
++ return pwd.getpwuid(uid).pw_name
++ except KeyError:
++ pass
++except ImportError: # pwd is available only on *nix
++ def get_user_name(uid=None):
++ """
++ Return user name of current user.
++ :param int uid: Optional argument. Note that uid may be equal only
++ to current user's id, otherwise an exception will be raised.
++ """
++ if uid is not None and uid != os.getuid():
++ raise ValueError("Can not get user name for other user.")
++ try:
++ return getpass.getuser()
++ except KeyError:
++ pass
++
+ def parse_url(url):
+ """Return a tuple of (host, port, ssl) from the URL parameter.
+ The returned port defaults to 5988 if not specified. SSL supports
+@@ -226,10 +253,7 @@ def wbem_request(url, data, creds, heade
+ local = True
+ if local:
+ uid = os.getuid()
+- try:
+- locallogin = getpass.getuser()
+- except KeyError:
+- locallogin = None
++ locallogin = get_user_name(uid)
+ while numTries < tryLimit:
+ numTries = numTries + 1
+
diff --git a/pywbem.spec b/pywbem.spec
index b9de240..4683d0b 100644
--- a/pywbem.spec
+++ b/pywbem.spec
@@ -4,7 +4,7 @@
Name: pywbem
Version: 0.7.0
-Release: 24.%{revdate}svn%{svnrev}%{?dist}
+Release: 25.%{revdate}svn%{svnrev}%{?dist}
Summary: Python WBEM Client and Provider Interface
Group: Development/Libraries
License: LGPLv2
@@ -23,6 +23,7 @@ Requires: m2crypto
Patch0: pywbem-20130411-mof_compiler-import.patch
Patch1: pywbem-20131121-ssl_verify_host.patch
Patch2: pywbem-20131121-utf_encoding.patch
+Patch3: pywbem-20131121-local_root_auth.patch
%description
A Python library for making CIM (Common Information Model) operations over HTTP
@@ -56,6 +57,7 @@ twisted.protocols.http.HTTPClient base class.
%patch0 -p1 -b .mofcomp-imports
%patch1 -p1 -b .ssl_verify_host
%patch2 -p1 -b .utf_encoding
+%patch3 -p1 -b .local_root_auth
%build
# dirty workaround to fix the mof_compiler.py module path
@@ -86,6 +88,9 @@ rm -rf %{buildroot}
%{python_sitelib}/pywbem/twisted_client.py*
%changelog
+* Mon Feb 24 2014 Michal Minar <miminar at redhat.com> 0.7.0-25.20131121svn656
+- Fixed local authentication under root.
+
* Thu Jan 23 2014 Michal Minar <miminar at redhat.com> 0.7.0-24.20131121svn656
- Added support for non-ascii strings.
More information about the scm-commits
mailing list