001    package org.apache.archiva.admin.model.beans;
002    /*
003     * Licensed to the Apache Software Foundation (ASF) under one
004     * or more contributor license agreements.  See the NOTICE file
005     * distributed with this work for additional information
006     * regarding copyright ownership.  The ASF licenses this file
007     * to you under the Apache License, Version 2.0 (the
008     * "License"); you may not use this file except in compliance
009     * with the License.  You may obtain a copy of the License at
010     *
011     *   http://www.apache.org/licenses/LICENSE-2.0
012     *
013     * Unless required by applicable law or agreed to in writing,
014     * software distributed under the License is distributed on an
015     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016     * KIND, either express or implied.  See the License for the
017     * specific language governing permissions and limitations
018     * under the License.
019     */
020    
021    import javax.xml.bind.annotation.XmlRootElement;
022    import java.io.Serializable;
023    import java.util.ArrayList;
024    import java.util.HashMap;
025    import java.util.List;
026    import java.util.Map;
027    
028    /**
029     * @author Olivier Lamy
030     * @since 1.4-M4
031     */
032    @XmlRootElement(name = "ldapConfiguration")
033    public class LdapConfiguration
034        implements Serializable
035    {
036    
037    
038        /**
039         * The LDAP host.
040         */
041        private String hostName;
042    
043        /**
044         * The LDAP port.
045         */
046        private int port;
047    
048        /**
049         * ssl LDAP connection.
050         */
051        private boolean ssl = false;
052    
053        /**
054         * The LDAP base dn.
055         */
056        private String baseDn;
057    
058        /**
059         * contextFactory to use.
060         */
061        private String contextFactory;
062    
063        /**
064         * The LDAP bind dn.
065         */
066        private String bindDn;
067    
068        /**
069         * The LDAP base dn for groups (if empty baseDn is used).
070         */
071        private String baseGroupsDn;
072    
073        /**
074         * The LDAP password.
075         */
076        private String password;
077    
078        /**
079         * The LDAP authenticationMethod.
080         */
081        private String authenticationMethod;
082    
083        /**
084         *
085         */
086        private boolean bindAuthenticatorEnabled;
087    
088        /**
089         * Will use role name as LDAP group.
090         */
091        private boolean useRoleNameAsGroup = false;
092    
093        /**
094         * Field extraProperties.
095         */
096        private Map<String, String> extraProperties = new HashMap<String, String>();
097    
098        /**
099         * field to ease json mapping wrapper on <code>extraProperties</code> field
100         */
101        private List<PropertyEntry> extraPropertiesEntries;
102    
103        /**
104         * LDAP writable.
105         */
106        private boolean writable = false;
107    
108        public LdapConfiguration()
109        {
110            // no op
111        }
112    
113        public String getHostName()
114        {
115            return hostName;
116        }
117    
118        public void setHostName( String hostName )
119        {
120            this.hostName = hostName;
121        }
122    
123        public int getPort()
124        {
125            return port;
126        }
127    
128        public void setPort( int port )
129        {
130            this.port = port;
131        }
132    
133        public boolean isSsl()
134        {
135            return ssl;
136        }
137    
138        public void setSsl( boolean ssl )
139        {
140            this.ssl = ssl;
141        }
142    
143        public String getBaseDn()
144        {
145            return baseDn;
146        }
147    
148        public void setBaseDn( String baseDn )
149        {
150            this.baseDn = baseDn;
151        }
152    
153        public String getContextFactory()
154        {
155            return contextFactory;
156        }
157    
158        public void setContextFactory( String contextFactory )
159        {
160            this.contextFactory = contextFactory;
161        }
162    
163        public String getBindDn()
164        {
165            return bindDn;
166        }
167    
168        public void setBindDn( String bindDn )
169        {
170            this.bindDn = bindDn;
171        }
172    
173        public String getPassword()
174        {
175            return password;
176        }
177    
178        public void setPassword( String password )
179        {
180            this.password = password;
181        }
182    
183        public String getAuthenticationMethod()
184        {
185            return authenticationMethod;
186        }
187    
188        public void setAuthenticationMethod( String authenticationMethod )
189        {
190            this.authenticationMethod = authenticationMethod;
191        }
192    
193        public Map<String, String> getExtraProperties()
194        {
195            return extraProperties;
196        }
197    
198        public void setExtraProperties( Map<String, String> extraProperties )
199        {
200            this.extraProperties = extraProperties;
201        }
202    
203        public boolean isBindAuthenticatorEnabled()
204        {
205            return bindAuthenticatorEnabled;
206        }
207    
208        public void setBindAuthenticatorEnabled( boolean bindAuthenticatorEnabled )
209        {
210            this.bindAuthenticatorEnabled = bindAuthenticatorEnabled;
211        }
212    
213        public List<PropertyEntry> getExtraPropertiesEntries()
214        {
215            extraPropertiesEntries = new ArrayList<PropertyEntry>( getExtraProperties().size() );
216            for ( Map.Entry<String, String> entry : getExtraProperties().entrySet() )
217            {
218                extraPropertiesEntries.add( new PropertyEntry( entry.getKey(), entry.getValue() ) );
219            }
220            return extraPropertiesEntries;
221        }
222    
223        public void setExtraPropertiesEntries( List<PropertyEntry> extraPropertiesEntries )
224        {
225            this.extraPropertiesEntries = extraPropertiesEntries;
226            if ( extraPropertiesEntries != null )
227            {
228                for ( PropertyEntry propertyEntry : extraPropertiesEntries )
229                {
230                    this.extraProperties.put( propertyEntry.getKey(), propertyEntry.getValue() );
231                }
232            }
233        }
234    
235        public String getBaseGroupsDn()
236        {
237            return baseGroupsDn;
238        }
239    
240        public void setBaseGroupsDn( String baseGroupsDn )
241        {
242            this.baseGroupsDn = baseGroupsDn;
243        }
244    
245        public boolean isWritable()
246        {
247            return writable;
248        }
249    
250        public void setWritable( boolean writable )
251        {
252            this.writable = writable;
253        }
254    
255        public boolean isUseRoleNameAsGroup()
256        {
257            return useRoleNameAsGroup;
258        }
259    
260        public void setUseRoleNameAsGroup( boolean useRoleNameAsGroup )
261        {
262            this.useRoleNameAsGroup = useRoleNameAsGroup;
263        }
264    }