java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartAdvancedOptionsAction.java | 4 +-
java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml | 6 +++
java/code/src/com/redhat/rhn/manager/kickstart/KickstartOptionsCommand.java | 3 +
java/code/webapp/WEB-INF/pages/kickstart/kickstartoptions.jsp | 18 +++++++---
4 files changed, 26 insertions(+), 5 deletions(-)
New commits:
commit 8853d2802182f183db65488219c9a256222e92eb
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Tue Oct 4 12:16:13 2011 +0200
729784 - support for passalgo in advanced options of kickstart profiles
it's possible to hash encode passwords in kickstart profiles not just using MD5, but also using SHA256,SHA512, ... [everything what anaconda supports]
diff --git a/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartAdvancedOptionsAction.java b/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartAdvancedOptionsAction.java
index e84e171..1b9051d 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartAdvancedOptionsAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartAdvancedOptionsAction.java
@@ -23,6 +23,7 @@ import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.struts.RhnAction;
import com.redhat.rhn.manager.kickstart.KickstartOptionsCommand;
+import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
@@ -117,7 +118,8 @@ public class KickstartAdvancedOptionsAction extends RhnAction {
if (cn.getName().equals("rootpw")) {
String pwarg = request.getParameter(argsName);
// password already encrypted
- if (pwarg.startsWith("$1$")) {
+ String md5Crypt = request.getParameter("md5_crypt_rootpw");
+ if (StringUtils.isEmpty(md5Crypt)) {
kc.setArguments(pwarg);
}
// password changed, encrypt it
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
index 6a840cf..546a439 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
@@ -2026,6 +2026,12 @@ available for this kickstart profile to function properly.
<context context-type="sourcefile">/rhn/kickstart/KickstartOptionsEdit</context>
</context-group>
</trans-unit>
+ <trans-unit id="kickstart.options.rootpw.note">
+ <source><strong>NOTE:</strong> You may set any password hash into this field. Make sure the hash algorithm is correctly set in the <strong>auth</strong> option. However you may enter a plaintext password, that will be md5 encrypted when selecting the <strong>MD5 Encrypt</strong> checkbox.</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">/rhn/kickstart/KickstartOptionsEdit</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="kickstart.iprange_add.success">
<source>Successfully added IP Range to Kickstart Profile {0}</source>
<context-group name="ctx">
diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartOptionsCommand.java b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartOptionsCommand.java
index eae1307..b422a21 100644
--- a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartOptionsCommand.java
+++ b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartOptionsCommand.java
@@ -92,6 +92,9 @@ public class KickstartOptionsCommand extends BaseKickstartCommand {
if (name.equals("url")) {
v.setAdditionalNotesKey("kickstart.options.url.note");
}
+ else if (name.equals("rootpw")) {
+ v.setAdditionalNotesKey("kickstart.options.rootpw.note");
+ }
v.setArg(args);
v.setEnabled(Boolean.TRUE);
diff --git a/java/code/webapp/WEB-INF/pages/kickstart/kickstartoptions.jsp b/java/code/webapp/WEB-INF/pages/kickstart/kickstartoptions.jsp
index cfe84bb..dd66653 100644
--- a/java/code/webapp/WEB-INF/pages/kickstart/kickstartoptions.jsp
+++ b/java/code/webapp/WEB-INF/pages/kickstart/kickstartoptions.jsp
@@ -42,10 +42,20 @@
<c:when test="${option.hasArgs}">
<td><input type="checkbox" name="${option.name}" value="${option.name}" ${enabled} /></td>
<td>
- <input type="text" name="<c:out value="${option.name}" />_txt" value="${option.arg}" size="64"/><br/>
- <c:if test="${option.additionalNotesKey != null}">
- <bean:message key="${option.additionalNotesKey}"/>
- </c:if>
+ <c:choose>
+ <c:when test="${option.name == 'rootpw'}">
+ <input type="text" name="<c:out value="${option.name}" />_txt" value="${option.arg}" size="48"/>
+ <input type="checkbox" name='md5_crypt_rootpw' value='md5_crypt_rootpw' id="md5_crypt_rootpw"/>
+ <label for="md5_crypt_rootpw"><c:out value="MD5 Encrypt"/></label>
+ <br/>
+ </c:when>
+ <c:otherwise>
+ <input type="text" name="<c:out value="${option.name}" />_txt" value="${option.arg}" size="64"/><br/>
+ </c:otherwise>
+ </c:choose>
+ <c:if test="${option.additionalNotesKey != null}">
+ <bean:message key="${option.additionalNotesKey}"/>
+ </c:if>
</td>
</c:when>
<c:otherwise>