diff --git a/core/src/main/resources/lib/form/password.jelly b/core/src/main/resources/lib/form/password.jelly index 09b8f5695d..6e93438051 100644 --- a/core/src/main/resources/lib/form/password.jelly +++ b/core/src/main/resources/lib/form/password.jelly @@ -58,6 +58,7 @@ THE SOFTWARE. name ="${attrs.name ?: '_.'+attrs.field}" value="${h.getPasswordValue(attrs.value ?: instance[attrs.field])}" type="password" + checkMethod="post" ATTRIBUTES="${attrs}" EXCEPT="field clazz" /> diff --git a/test/src/test/java/lib/form/PasswordTest.java b/test/src/test/java/lib/form/PasswordTest.java index 6aab4b698b..0e3ed7c783 100644 --- a/test/src/test/java/lib/form/PasswordTest.java +++ b/test/src/test/java/lib/form/PasswordTest.java @@ -26,6 +26,7 @@ package lib.form; import com.gargoylesoftware.htmlunit.Page; import com.gargoylesoftware.htmlunit.html.HtmlInput; import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput; import hudson.Extension; import hudson.cli.CopyJobCommand; import hudson.cli.GetJobCommand; @@ -36,6 +37,7 @@ import hudson.model.Item; import hudson.model.JobProperty; import hudson.model.JobPropertyDescriptor; import hudson.model.User; +import hudson.util.FormValidation; import hudson.util.Secret; import java.io.ByteArrayOutputStream; import java.io.PrintStream; @@ -56,10 +58,10 @@ import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.MockAuthorizationStrategy; import org.jvnet.hudson.test.TestExtension; import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.Stapler; +import org.kohsuke.stapler.StaplerRequest; -/** - * @author Kohsuke Kawaguchi - */ public class PasswordTest extends HudsonTestCase implements Describable { public Secret secret; @@ -158,17 +160,41 @@ public class PasswordTest extends HudsonTestCase implements Describable { public final Secret secret; @DataBoundConstructor public VulnerableProperty(Secret secret) { this.secret = secret; } - @TestExtension("testExposedCiphertext") + @TestExtension public static class DescriptorImpl extends JobPropertyDescriptor { - @Override // TODO delete in 1.635+ - public String getDisplayName() { - return "VulnerableProperty"; + static String incomingURL; + static String checkedSecret; + public FormValidation doCheckSecret(@QueryParameter String value) { + StaplerRequest req = Stapler.getCurrentRequest(); + incomingURL = req.getRequestURIWithQueryString(); + System.err.println("processing " + incomingURL + " via " + req.getMethod() + ": " + value); + checkedSecret = value; + return FormValidation.ok(); } } }