/*
* JBoss, Home of Professional Open Source.
* Copyright 2013, Red Hat, Inc., and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.as.test.integration.security.common.config.realm;
/**
*
* @author Josef Cacek
*/
public class LdapAuthentication {
// shared among ldap-connection and ldap authentication
private final String connection;
// ldap-connection attributes
private final String searchDn;
private final String searchCredential;
private final String securityRealm;
private final String url;
private final String initialContextFactory;
// ldap authentication attributes
private final String advancedFilter;
private final String baseDn;
private final String userDn;
private final Boolean recursive;
private final String usernameAttribute;
private final Boolean allowEmptyPasswords;
// Constructors ----------------------------------------------------------
/**
* @param builder
*/
private LdapAuthentication(final Builder builder) {
this.connection = builder.connection;
this.advancedFilter = builder.advancedFilter;
this.baseDn = builder.baseDn;
this.userDn = builder.userDn;
this.recursive = builder.recursive;
this.usernameAttribute = builder.usernameAttribute;
this.allowEmptyPasswords = builder.allowEmptyPasswords;
this.searchDn = builder.searchDn;
this.searchCredential = builder.searchCredential;
this.securityRealm = builder.securityRealm;
this.url = builder.url;
this.initialContextFactory = builder.initialContextFactory;
}
// Public methods --------------------------------------------------------
/**
* @return the connection
*/
public String getConnection() {
return connection;
}
/**
* @return the advancedFilter
*/
public String getAdvancedFilter() {
return advancedFilter;
}
/**
* @return the baseDn
*/
public String getBaseDn() {
return baseDn;
}
/**
* @return the userDn
*/
public String getUserDn() {
return userDn;
}
/**
* @return the usernameAttribute
*/
public String getUsernameAttribute() {
return usernameAttribute;
}
/**
* @return the searchDn
*/
public String getSearchDn() {
return searchDn;
}
/**
* @return the searchCredential
*/
public String getSearchCredential() {
return searchCredential;
}
/**
* @return the securityRealm
*/
public String getSecurityRealm() {
return securityRealm;
}
/**
* @return the url
*/
public String getUrl() {
return url;
}
/**
* @return the initialContextFactory
*/
public String getInitialContextFactory() {
return initialContextFactory;
}
/**
* @return the recursive
*/
public Boolean getRecursive() {
return recursive;
}
/**
* @return the allowEmptyPasswords
*/
public Boolean getAllowEmptyPasswords() {
return allowEmptyPasswords;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "LdapAuthentication [connection=" + connection + ", searchDn=" + searchDn + ", searchCredential="
+ searchCredential + ", securityRealm=" + securityRealm + ", url=" + url + ", initialContextFactory="
+ initialContextFactory + ", advancedFilter=" + advancedFilter + ", baseDn=" + baseDn + ", userDn=" + userDn
+ ", recursive=" + recursive + ", usernameAttribute=" + usernameAttribute + ", allowEmptyPasswords="
+ allowEmptyPasswords + "]";
}
// Embedded classes ------------------------------------------------------
public static class Builder {
private String connection;
private String searchDn;
private String searchCredential;
private String securityRealm;
private String url;
private String initialContextFactory;
private String advancedFilter;
private String baseDn;
private String userDn;
private Boolean recursive;
private String usernameAttribute;
private Boolean allowEmptyPasswords;
public Builder connection(String connection) {
this.connection = connection;
return this;
}
public Builder advancedFilter(String advancedFilter) {
this.advancedFilter = advancedFilter;
return this;
}
public Builder baseDn(String baseDn) {
this.baseDn = baseDn;
return this;
}
public Builder userDn(String userDn) {
this.userDn = userDn;
return this;
}
public Builder recursive(Boolean recursive) {
this.recursive = recursive;
return this;
}
public Builder searchDn(String searchDn) {
this.searchDn = searchDn;
return this;
}
public Builder searchCredential(String searchCredential) {
this.searchCredential = searchCredential;
return this;
}
public Builder securityRealm(String securityRealm) {
this.securityRealm = securityRealm;
return this;
}
public Builder url(String url) {
this.url = url;
return this;
}
public Builder initialContextFactory(String initialContextFactory) {
this.initialContextFactory = initialContextFactory;
return this;
}
public Builder usernameAttribute(String usernameAttribute) {
this.usernameAttribute = usernameAttribute;
return this;
}
public Builder allowEmptyPasswords(Boolean allowEmptyPasswords) {
this.allowEmptyPasswords = allowEmptyPasswords;
return this;
}
public LdapAuthentication build() {
return new LdapAuthentication(this);
}
}
}