java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/ProfileHandler.java | 19
++++++++--
java/spacewalk-java.spec | 6
++-
rel-eng/packages/spacewalk-java | 2
-
3 files changed, 22 insertions(+), 5 deletions(-)
New commits:
commit cc8a7e08bb3dec0fa9caad82d71f90f5a2047386
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Nov 26 16:58:56 2012 +0100
Automatic commit of package [spacewalk-java] release [1.9.18-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index 0b1b141..698bdb4 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -23,7 +23,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 1.9.17
+Version: 1.9.18
Release: 1%{?dist}
URL:
https://fedorahosted.org/spacewalk
Source0:
https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -617,6 +617,10 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Mon Nov 26 2012 Tomas Lestach <tlestach(a)redhat.com> 1.9.18-1
+- 879332 - introduce 'md5_crypt_rootpw' option for
+ kickstart.profile.setAdvancedOptions API
+
* Fri Nov 23 2012 Tomas Lestach <tlestach(a)redhat.com> 1.9.17-1
- 879443 - preserve product name when cloning channels using API
- Implement new API call system.listAllInstallablePackages
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index ff26caa..d9aa5ff 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-1.9.17-1 java/
+1.9.18-1 java/
commit c5224642e03c7df9c1db27e3ef25e2f1700cd185
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Nov 26 11:33:06 2012 +0100
879332 - introduce 'md5_crypt_rootpw' option for
kickstart.profile.setAdvancedOptions API
to support other password hash algorithms except of MD5
- similar to the 8853d280 change for WebUI
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/ProfileHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/ProfileHandler.java
index 2ea7a34..8907ec8 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/ProfileHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/ProfileHandler.java
@@ -53,6 +53,7 @@ import com.redhat.rhn.manager.kickstart.KickstartIpCommand;
import com.redhat.rhn.manager.kickstart.KickstartManager;
import com.redhat.rhn.manager.kickstart.KickstartOptionsCommand;
+import org.apache.commons.lang.BooleanUtils;
import org.cobbler.Profile;
import java.util.ArrayList;
@@ -533,6 +534,9 @@ public class ProfileHandler extends BaseHandler {
* or invalid advanced option is provided
*
* @xmlrpc.doc Set advanced options for a kickstart profile.
+ * If 'md5_crypt_rootpw' is set to 'True', 'root_pw' is taken
as plaintext and
+ * will md5 encrypted on server side, otherwise a hash encoded password
+ * (according to the auth option) is expected
* @xmlrpc.param #session_key()
* @xmlrpc.param #param("string","ksLabel")
* @xmlrpc.param
@@ -545,7 +549,7 @@ public class ProfileHandler extends BaseHandler {
* timezone, auth, rootpw, selinux, reboot, firewall, xconfig, skipx,
* key, ignoredisk, autopart, cmdline, firstboot, graphical, iscsi,
* iscsiname, logging, monitor, multipath, poweroff, halt, services,
- * shutdown, user, vnc, zfcp, driverdisk")
+ * shutdown, user, vnc, zfcp, driverdisk, md5_crypt_rootpw")
* #prop_desc("string", "arguments", "Arguments of
the option")
* #struct_end()
* #array_end()
@@ -569,7 +573,7 @@ public class ProfileHandler extends BaseHandler {
"selinux", "reboot", "firewall",
"xconfig", "skipx", "key",
"ignoredisk", "autopart", "cmdline",
"firstboot", "graphical", "iscsi",
"iscsiname", "logging", "monitor",
"multipath", "poweroff", "halt",
- "services", "shutdown", "user",
"vnc", "zfcp", "driverdisk"};
+ "services", "shutdown", "user",
"vnc", "zfcp", "driverdisk", "md5_crypt_rootpw"};
List<String> validOptions = Arrays.asList(validOptionNames);
@@ -626,7 +630,7 @@ public class ProfileHandler extends BaseHandler {
if (cn.getName().equals("rootpw")) {
String pwarg = (String) option.get("arguments");
// password already encrypted
- if (pwarg.startsWith("$1$")) {
+ if (!md5cryptRootPw(options)) {
kc.setArguments(pwarg);
}
// password changed, encrypt it
@@ -647,6 +651,15 @@ public class ProfileHandler extends BaseHandler {
return 1;
}
+ private boolean md5cryptRootPw(List<Map> options) {
+ for (Map m : options) {
+ if ("md5_crypt_rootpw".equals(m.get("name"))) {
+ return BooleanUtils.toBoolean((String)m.get("arguments"));
+ }
+ }
+ return false;
+ }
+
/**
* Get custom options for a kickstart profile.
* @param sessionKey the session key