blob: ef01d02891d9b55482cf22c3bdedde5fe9c63614 [file] [log] [blame]
// Copyright (C) 2015 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.thesamet.gerrit.plugins.saml;
import com.google.gerrit.server.config.GerritServerConfig;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import org.eclipse.jgit.lib.Config;
/** SAML 2.0 related settings from {@code gerrit.config}. */
@Singleton
public class SamlConfig {
private static final String SAML_SECTION = "saml";
private final String metadataPath;
private final String keystorePath;
private final String privateKeyPassword;
private final String keystorePassword;
private final String displayNameAttr;
private final String userNameAttr;
private final String emailAddressAttr;
private final int maxAuthLifetimeAttr;
private final boolean computedDisplayName;
private final String firstNameAttr;
private final String lastNameAttr;
private final int maxAuthLifetimeDefault = 24 * 60 * 60; // 24h;
@Inject
SamlConfig(@GerritServerConfig Config cfg) {
metadataPath = getString(cfg, "metadataPath");
keystorePath = getString(cfg, "keystorePath");
privateKeyPassword = getString(cfg, "privateKeyPassword");
keystorePassword = getString(cfg, "keystorePassword");
displayNameAttr = getGetStringWithDefault(cfg, "displayNameAttr", "DisplayName");
userNameAttr = getGetStringWithDefault(cfg, "userNameAttr", "UserName");
emailAddressAttr = getGetStringWithDefault(cfg, "emailAddressAttr", "EmailAddress");
maxAuthLifetimeAttr = cfg.getInt("saml", "maxAuthLifetime", maxAuthLifetimeDefault);
computedDisplayName = cfg.getBoolean(SAML_SECTION, "computedDisplayName", false);
firstNameAttr = getGetStringWithDefault(cfg, "firstNameAttr", "FirstName");
lastNameAttr = getGetStringWithDefault(cfg, "lastNameAttr", "LastName");
}
public String getMetadataPath() {
return metadataPath;
}
public String getKeystorePath() {
return keystorePath;
}
public String getPrivateKeyPassword() {
return privateKeyPassword;
}
public String getKeystorePassword() {
return keystorePassword;
}
public String getDisplayNameAttr() {
return displayNameAttr;
}
public String getUserNameAttr() {
return userNameAttr;
}
public String getEmailAddressAttr() {
return emailAddressAttr;
}
public int getMaxAuthLifetimeAttr() {
return maxAuthLifetimeAttr;
}
private static String getString(Config cfg, String name) {
return cfg.getString(SAML_SECTION, null, name);
}
private static String getGetStringWithDefault(Config cfg, String name, String defaultValue) {
String result = getString(cfg, name);
if (result != null) {
return result;
}
return defaultValue;
}
public String getFirstNameAttr() {
return firstNameAttr;
}
public String getLastNameAttr() {
return lastNameAttr;
}
public boolean isComputedDisplayName() {
return computedDisplayName;
}
}