未验证 提交 5773970a 编写于 作者: J Jesse Glick

Merge branch 'JENKINS-40228' of github.com:ksenia-nenasheva/jenkins into...

Merge branch 'JENKINS-40228' of github.com:ksenia-nenasheva/jenkins into enable-security-JENKINS-40228
......@@ -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")));
......
......@@ -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<SecurityReal
});
}
/**
* This special instance is not configurable explicitly,
* so it doesn't have a descriptor.
*/
@Override
public Descriptor<SecurityRealm> getDescriptor() {
return null;
}
/**
* There's no group.
*/
......@@ -613,6 +606,21 @@ public abstract class SecurityRealm extends AbstractDescribableImpl<SecurityReal
private Object readResolve() {
return NO_AUTHENTICATION;
}
@Extension(ordinal=-100)
@Symbol("none")
public static class DescriptorImpl extends Descriptor<SecurityRealm> {
@Override
public String getDisplayName() {
return Messages.NoneSecurityRealm_DisplayName();
}
@Override
public SecurityRealm newInstance(StaplerRequest req, JSONObject formData) throws Descriptor.FormException {
return NO_AUTHENTICATION;
}
}
}
/**
......
......@@ -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()))
}
}
......
......@@ -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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册