+ * This object can have an optional config.jelly to configure the Captcha Support
+ *
+ * A default constructor is needed to create CaptchaSupport in
+ * the default configuration.
+ *
+ * @author Winston Prakash
+ * @since 1.416
+ * @see CaptchaSupportDescriptor
+ */
+public abstract class CaptchaSupport extends AbstractDescribableImpl implements ExtensionPoint {
+ /**
+ * Returns all the registered {@link CaptchaSupport} descriptors.
+ */
+ public static DescriptorExtensionList> all() {
+ return Hudson.getInstance().>getDescriptorList(CaptchaSupport.class);
+ }
+
+ abstract public boolean validateCaptcha(String id, String text);
+
+ abstract public void generateImage(String id, OutputStream ios) throws IOException;
+
+ public CaptchaSupportDescriptor getDescriptor() {
+ return (CaptchaSupportDescriptor)super.getDescriptor();
+ }
+}
diff --git a/core/src/main/java/hudson/security/captcha/CaptchaSupportDescriptor.java b/core/src/main/java/hudson/security/captcha/CaptchaSupportDescriptor.java
new file mode 100644
index 0000000000..99e5b7b5d7
--- /dev/null
+++ b/core/src/main/java/hudson/security/captcha/CaptchaSupportDescriptor.java
@@ -0,0 +1,37 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011, Winston.Prakash@oracle.com
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package hudson.security.captcha;
+
+import hudson.model.Descriptor;
+
+/**
+ * {@link Descriptor} for {@link CaptchaSupport}.
+ *
+ * @author Winston Prakash
+ * @since 2.0.1
+ */
+public abstract class CaptchaSupportDescriptor extends Descriptor {
+ // so far nothing different from plain Descriptor
+ // but it may prove useful for future expansion
+}
diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/config.jelly b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/config.jelly
index 454d733f2e..8cc15a8f9e 100644
--- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/config.jelly
+++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/config.jelly
@@ -23,9 +23,25 @@ THE SOFTWARE.
-->
-
-
-
+
+
+
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup.jelly b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup.jelly
index 3246288fc8..656e96c3c9 100644
--- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup.jelly
+++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup.jelly
@@ -27,5 +27,5 @@ THE SOFTWARE.
-->
-
-
\ No newline at end of file
+
+
diff --git a/war/src/main/webapp/help/security/private-realm/allow-signup.html b/war/src/main/webapp/help/security/private-realm/allow-signup.html
index ceaeec8d69..124f422cba 100644
--- a/war/src/main/webapp/help/security/private-realm/allow-signup.html
+++ b/war/src/main/webapp/help/security/private-realm/allow-signup.html
@@ -2,7 +2,10 @@
By default, Jenkins allows users to create accounts by themselves, via the "sign up" link on the top right shoulder of the page.
But if you'd like to prevent random users from creating accounts, and instead tightly control how user accounts are created,
uncheck this box.
-
When this checkbox is unchecked, someone with the administrator role would have to create accounts.
-