diff --git a/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java b/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java index 5ee8971fb996fd67854a684a6dc72da387ff514d..f5ba2c38b5b47fb206d69ce070b7d4d23a0be6c7 100644 --- a/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java +++ b/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java @@ -110,14 +110,10 @@ public class GlobalSecurityConfiguration extends ManagementLink implements Descr // for compatibility reasons, the actual value is stored in Jenkins Jenkins j = Jenkins.get(); j.checkPermission(Jenkins.ADMINISTER); - if (json.has("useSecurity")) { - JSONObject security = json.getJSONObject("useSecurity"); - j.setDisableRememberMe(security.optBoolean("disableRememberMe", false)); - j.setSecurityRealm(SecurityRealm.all().newInstanceFromRadioList(security, "realm")); - j.setAuthorizationStrategy(AuthorizationStrategy.all().newInstanceFromRadioList(security, "authorization")); - } else { - j.disableSecurity(); - } + + j.setDisableRememberMe(json.optBoolean("disableRememberMe", false)); + j.setSecurityRealm(SecurityRealm.all().newInstanceFromRadioList(json, "realm")); + j.setAuthorizationStrategy(AuthorizationStrategy.all().newInstanceFromRadioList(json, "authorization")); if (json.has("markupFormatter")) { j.setMarkupFormatter(req.bindJSON(MarkupFormatter.class, json.getJSONObject("markupFormatter"))); diff --git a/core/src/main/java/hudson/security/SecurityRealm.java b/core/src/main/java/hudson/security/SecurityRealm.java index 5a4e30cc24f8c751b487ccebd37f9f7115be4c7f..82b6cb8f382d95ea7b9ddaabf4b8a61ef0f2b3f5 100644 --- a/core/src/main/java/hudson/security/SecurityRealm.java +++ b/core/src/main/java/hudson/security/SecurityRealm.java @@ -70,6 +70,8 @@ import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; /** * Pluggable security realm that connects external user database to Hudson. @@ -582,15 +584,6 @@ public abstract class SecurityRealm extends AbstractDescribableImpl getDescriptor() { - return null; - } - /** * There's no group. */ @@ -613,6 +606,21 @@ public abstract class SecurityRealm extends AbstractDescribableImpl { + + @Override + public String getDisplayName() { + return Messages.NoneSecurityRealm_DisplayName(); + } + + @Override + public SecurityRealm newInstance(StaplerRequest req, JSONObject formData) throws Descriptor.FormException { + return NO_AUTHENTICATION; + } + } } /** diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy index 8a28265d1a3627a66e8374962deccddf9ef7b4fa..6e19623d4378c40aceaebc800d38ba5eaf7ebddf 100644 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy @@ -25,14 +25,21 @@ l.layout(norefresh:true, permission:app.ADMINISTER, title:my.displayName, csscla set("instance",my) set("descriptor", my.descriptor) - f.optionalBlock( field:"useSecurity", title:_("Enable security"), checked:app.useSecurity) { + f.section(title:_("Authentication")) { f.entry() { f.checkbox(title:_("Disable remember me"), field: "disableRememberMe") } - f.entry(title:_("Access Control")) { + f.entry(title:_("Security Realm")) { table(style:"width:100%") { f.descriptorRadioList(title:_("Security Realm"),varName:"realm", instance:app.securityRealm, descriptors:h.filterDescriptors(app, SecurityRealm.all())) + } + } + } + + f.section(title:_("Authorization")) { + f.entry(title:_("Strategy")) { + table(style:"width:100%") { f.descriptorRadioList(title:_("Authorization"), varName:"authorization", instance:app.authorizationStrategy, descriptors:h.filterDescriptors(app, AuthorizationStrategy.all())) } } diff --git a/core/src/main/resources/hudson/security/Messages.properties b/core/src/main/resources/hudson/security/Messages.properties index 06df37e2319ab81e1041b0dfc661fd31b8e9f35f..03774c825188f6f374fc29878ca5cfbe10cd0f29 100644 --- a/core/src/main/resources/hudson/security/Messages.properties +++ b/core/src/main/resources/hudson/security/Messages.properties @@ -69,3 +69,5 @@ PAMSecurityRealm.Uid=uid: {0} # not in use Permission.Permissions.Title=N/A AccessDeniedException2.MissingPermission={0} is missing the {1} permission + +NoneSecurityRealm.DisplayName=None diff --git a/essentials.yml b/essentials.yml index e5eaf42fb84b32c443cd372279e9a0029dc645b7..335cf29ada78f2c4b99626465ad52e1fb9ff23a6 100644 --- a/essentials.yml +++ b/essentials.yml @@ -1,7 +1,7 @@ --- ath: useLocalSnapshots: false - athRevision: "5606d3bb3a645311711b74833d5d3a4fdc4d713d" + athRevision: "7bd2cd43e03848d2db1f07be9115a2ebe24e9527" athImage: "jenkins/ath@sha256:284c2fdfaf1a51e95783126367c0a88c07af83ff9234063d12ba3001959628e8" categories: - org.jenkinsci.test.acceptance.junit.SmokeTest