You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by er...@apache.org on 2005/10/28 05:51:51 UTC
svn commit: r329072 - in /directory/protocol-providers/changepw/trunk: ./
src/java/org/apache/changepw/ src/java/org/apache/changepw/protocol/
src/java/org/apache/changepw/service/
Author: erodriguez
Date: Thu Oct 27 20:51:44 2005
New Revision: 329072
URL: http://svn.apache.org/viewcvs?rev=329072&view=rev
Log:
Refactoring in the Change Password protocol provider:
o Moved server wrapper out of the OSGi bundle.
o Cleaned-up configuration.
o Standardized configuration location to top of hierarchy.
o Added deps on MINA 0.8.0 and apacheds-core for configuration.
Added:
directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/ChangePasswordConfiguration.java
- copied, changed from r327935, directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordConfiguration.java
directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/ChangePasswordServer.java (with props)
Removed:
directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordConfiguration.java
Modified:
directory/protocol-providers/changepw/trunk/project.xml
directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/protocol/ChangePasswordProtocolHandler.java
directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/protocol/ChangePasswordProtocolProvider.java
directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordContext.java
directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordExceptionHandler.java
directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/CheckPasswordPolicy.java
directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/VerifyServiceTicket.java
Modified: directory/protocol-providers/changepw/trunk/project.xml
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/project.xml?rev=329072&r1=329071&r2=329072&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/project.xml (original)
+++ directory/protocol-providers/changepw/trunk/project.xml Thu Oct 27 20:51:44 2005
@@ -100,13 +100,19 @@
<dependency>
<groupId>directory-network</groupId>
<artifactId>mina</artifactId>
- <version>0.7.3-SNAPSHOT</version>
+ <version>0.8.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>nlog4j</artifactId>
<version>1.2.17</version>
<url>http://slf4j.org/nlog4j</url>
+ </dependency>
+ <dependency>
+ <!-- required to load Configuration and LDIFs -->
+ <groupId>directory</groupId>
+ <artifactId>apacheds-core</artifactId>
+ <version>0.9.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>junit</groupId>
Copied: directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/ChangePasswordConfiguration.java (from r327935, directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordConfiguration.java)
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/ChangePasswordConfiguration.java?p2=directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/ChangePasswordConfiguration.java&p1=directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordConfiguration.java&r1=327935&r2=329072&rev=329072&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordConfiguration.java (original)
+++ directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/ChangePasswordConfiguration.java Thu Oct 27 20:51:44 2005
@@ -14,224 +14,279 @@
* limitations under the License.
*
*/
-package org.apache.changepw.service;
+package org.apache.changepw;
import java.util.ArrayList;
-import java.util.Hashtable;
+import java.util.Dictionary;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import java.util.Properties;
+import java.util.Map;
import javax.security.auth.kerberos.KerberosPrincipal;
import org.apache.kerberos.crypto.encryption.EncryptionType;
+import org.apache.ldap.server.DirectoryService;
+import org.apache.ldap.server.configuration.ConfigurationException;
+import org.apache.protocol.common.LoadStrategy;
+import org.apache.protocol.common.ServiceConfiguration;
-public class ChangePasswordConfiguration
+public class ChangePasswordConfiguration extends ServiceConfiguration
{
- /** the number of milliseconds in a minute */
- private static final int MINUTE = 60000;
-
/** the prop key const for changepw.principal */
- private static final String CHANGEPW_PRINCIPAL_KEY = "changepw.principal";
+ private static final String PRINCIPAL_KEY = "principal";
/** the default change password principal */
- private static final String CHANGEPW_DEFAULT_PRINCIPAL = "kadmin/changepw@EXAMPLE.COM";
+ private static final String DEFAULT_PRINCIPAL = "kadmin/changepw@EXAMPLE.COM";
- /** the prop key const for changepw.primary.realm */
- private static final String CHANGEPW_PRIMARY_REALM_KEY = "changepw.primary.realm";
+ /** the prop key const for primary.realm */
+ private static final String REALM_KEY = "realm";
/** the default change password realm */
- private static final String CHANGEPW_DEFAULT_REALM = "EXAMPLE.COM";
-
- /** the prop key const for changepw.port */
- private static final String CHANGEPW_PORT_KEY = "changepw.port";
+ private static final String DEFAULT_REALM = "EXAMPLE.COM";
/** the default change password port */
- private static final int CHANGEPW_DEFAULT_PORT = 464;
+ private static final String DEFAULT_IP_PORT = "464";
- /** the prop key const for changepw.encryption.types */
- private static final String CHANGEPW_ENCRYPTION_TYPES_KEY = "changepw.encryption.types";
+ /** the prop key const for encryption.types */
+ private static final String ENCRYPTION_TYPES_KEY = "encryption.types";
/** the default encryption types */
- public static final String[] CHANGEPW_DEFAULT_ENCRYPTION_TYPES = new String[] { "des-cbc-md5" };
+ public static final String[] DEFAULT_ENCRYPTION_TYPES = new String[] { "des-cbc-md5" };
- /** the prop key const for changepw.buffer.size */
- private static final String CHANGEPW_BUFFER_SIZE_KEY = "changepw.buffer.size";
+ /** the prop key const for allowable.clockskew */
+ private static final String ALLOWABLE_CLOCKSKEW_KEY = "allowable.clockskew";
/** the default changepw buffer size */
- private static final int CHANGEPW_DEFAULT_BUFFER_SIZE = 1024;
+ private static final long DEFAULT_ALLOWABLE_CLOCKSKEW = 5 * MINUTE;
- /** the prop key const for changepw.empty.addresses.allowed */
- private static final String CHANGEPW_EMPTY_ADDRESSES_ALLOWED_KEY = "changepw.empty.addresses.allowed";
+ /** the prop key const for empty.addresses.allowed */
+ private static final String EMPTY_ADDRESSES_ALLOWED_KEY = "empty.addresses.allowed";
/** the default empty addresses */
- private static final boolean CHANGEPW_DEFAULT_EMPTY_ADDRESSES_ALLOWED = true;
-
- /** the prop key const for changepw.allowable.clockskew */
- private static final String CHANGEPW_ALLOWABLE_CLOCKSKEW_KEY = "changepw.allowable.clockskew";
-
- /** the default changepw buffer size */
- private static final long CHANGEPW_DEFAULT_ALLOWABLE_CLOCKSKEW = 5 * MINUTE;
+ private static final boolean DEFAULT_EMPTY_ADDRESSES_ALLOWED = true;
/** the prop key constants for password policy */
- public static final String CHANGEPW_PASSWORD_LENGTH_KEY = "changepw.password.length";
- public static final String CHANGEPW_CATEGORY_COUNT_KEY = "changepw.category.count";
- public static final String CHANGEPW_TOKEN_SIZE_KEY = "changepw.token.size";
+ public static final String PASSWORD_LENGTH_KEY = "password.length";
+ public static final String CATEGORY_COUNT_KEY = "category.count";
+ public static final String TOKEN_SIZE_KEY = "token.size";
/** the default change password password policies */
- public static final int CHANGEPW_DEFAULT_PASSWORD_LENGTH = 6;
- public static final int CHANGEPW_DEFAULT_CATEGORY_COUNT = 3;
- public static final int CHANGEPW_DEFAULT_TOKEN_SIZE = 3;
+ public static final int DEFAULT_PASSWORD_LENGTH = 6;
+ public static final int DEFAULT_CATEGORY_COUNT = 3;
+ public static final int DEFAULT_TOKEN_SIZE = 3;
+
+ private static final String DEFAULT_PID = "org.apache.changepw";
+ private static final String DEFAULT_NAME = "Apache Change Password Service";
+ private static final String DEFAULT_PREFIX = "changepw.";
- private final Properties properties = new Properties();
private EncryptionType[] encryptionTypes;
+ /**
+ * Creates a new instance with default settings.
+ */
public ChangePasswordConfiguration()
{
- prepareEncryptionTypes();
+ this( getDefaultConfig(), LoadStrategy.LDAP );
+ }
+
+ /**
+ * Creates a new instance with default settings that operates on the
+ * {@link DirectoryService} with the specified ID.
+ */
+ public ChangePasswordConfiguration( String instanceId )
+ {
+ this( getDefaultConfig(), LoadStrategy.LDAP );
+ setInstanceId( instanceId );
+ }
+
+ public ChangePasswordConfiguration( Map properties )
+ {
+ this( properties, LoadStrategy.LDAP );
}
- public ChangePasswordConfiguration( Properties properties )
+ public ChangePasswordConfiguration( Map properties, int strategy )
{
- this.properties.putAll( properties );
+ if ( properties == null )
+ {
+ configuration = getDefaultConfig();
+ }
+ else
+ {
+ loadProperties( DEFAULT_PREFIX, properties, strategy );
+ }
+
+ int port = getPort();
+
+ if ( port < 1 || port > 0xFFFF )
+ {
+ throw new ConfigurationException( "Invalid value: " + IP_PORT_KEY + "=" + port );
+ }
prepareEncryptionTypes();
}
- public String getPrimaryRealm()
+ public static Map getDefaultConfig()
+ {
+ Map defaults = new HashMap();
+
+ defaults.put( SERVICE_PID, DEFAULT_PID );
+ defaults.put( IP_PORT_KEY, DEFAULT_IP_PORT );
+
+ return defaults;
+ }
+
+ public boolean isDifferent( Dictionary config )
{
- String key = CHANGEPW_PRIMARY_REALM_KEY;
+ int port = getPort();
- if ( properties.containsKey( key ) )
+ if ( port == Integer.parseInt( (String) config.get( IP_PORT_KEY ) ) )
{
- return properties.getProperty( key );
+ return false;
}
- return CHANGEPW_DEFAULT_REALM;
+ return true;
}
- public EncryptionType[] getEncryptionTypes()
+ public String getName()
{
- return encryptionTypes;
+ return DEFAULT_NAME;
}
- public Hashtable getProperties()
+ public int getPort()
{
- // Request that the krb5key value be returned as binary
- properties.setProperty( "java.naming.ldap.attributes.binary", "krb5Key" );
+ String key = IP_PORT_KEY;
- return properties;
+ if ( configuration.containsKey( key ) )
+ {
+ return Integer.parseInt( get( key ) );
+ }
+
+ return Integer.parseInt( DEFAULT_IP_PORT );
}
- public long getClockSkew()
+ public String getPrimaryRealm()
{
- String key = CHANGEPW_ALLOWABLE_CLOCKSKEW_KEY;
+ String key = REALM_KEY;
- if ( properties.containsKey( key ) )
+ if ( configuration.containsKey( key ) )
{
- return MINUTE * Long.parseLong( properties.getProperty( key ) );
+ return get( key );
}
- return CHANGEPW_DEFAULT_ALLOWABLE_CLOCKSKEW;
+ return DEFAULT_REALM;
}
- public int getBufferSize()
+ public EncryptionType[] getEncryptionTypes()
+ {
+ return encryptionTypes;
+ }
+
+ public Map getProperties()
+ {
+ // Request that the krb5key value be returned as binary
+ configuration.put( "java.naming.ldap.attributes.binary", "krb5Key" );
+
+ return configuration;
+ }
+
+ public long getClockSkew()
{
- String key = CHANGEPW_BUFFER_SIZE_KEY;
+ String key = ALLOWABLE_CLOCKSKEW_KEY;
- if ( properties.containsKey( key ) )
+ if ( configuration.containsKey( key ) )
{
- return Integer.parseInt( properties.getProperty( key ) );
+ return MINUTE * Long.parseLong( get( key ) );
}
- return CHANGEPW_DEFAULT_BUFFER_SIZE;
+ return DEFAULT_ALLOWABLE_CLOCKSKEW;
}
- public int getChangepwPort()
+ public int getBufferSize()
{
- String key = CHANGEPW_PORT_KEY;
+ String key = BUFFER_SIZE_KEY;
- if ( properties.containsKey( key ) )
+ if ( configuration.containsKey( key ) )
{
- return Integer.parseInt( properties.getProperty( key ) );
+ return Integer.parseInt( get( key ) );
}
- return CHANGEPW_DEFAULT_PORT;
+ return DEFAULT_BUFFER_SIZE;
}
public KerberosPrincipal getChangepwPrincipal()
{
- String key = CHANGEPW_PRINCIPAL_KEY;
+ String key = PRINCIPAL_KEY;
- if ( properties.containsKey( key ) )
+ if ( configuration.containsKey( key ) )
{
- return new KerberosPrincipal( properties.getProperty( key ) );
+ return new KerberosPrincipal( get( key ) );
}
- return new KerberosPrincipal( CHANGEPW_DEFAULT_PRINCIPAL );
+ return new KerberosPrincipal( DEFAULT_PRINCIPAL );
}
public boolean isEmptyAddressesAllowed()
{
- String key = CHANGEPW_EMPTY_ADDRESSES_ALLOWED_KEY;
+ String key = EMPTY_ADDRESSES_ALLOWED_KEY;
- if ( properties.containsKey( key ) )
+ if ( configuration.containsKey( key ) )
{
- return "true".equalsIgnoreCase( properties.getProperty( key ) );
+ return "true".equalsIgnoreCase( get( key ) );
}
- return CHANGEPW_DEFAULT_EMPTY_ADDRESSES_ALLOWED;
+ return DEFAULT_EMPTY_ADDRESSES_ALLOWED;
}
public int getPasswordLengthPolicy()
{
- String key = CHANGEPW_PASSWORD_LENGTH_KEY;
+ String key = PASSWORD_LENGTH_KEY;
- if ( properties.containsKey( key ) )
+ if ( configuration.containsKey( key ) )
{
- return Integer.parseInt( properties.getProperty( key ) );
+ return Integer.parseInt( get( key ) );
}
- return CHANGEPW_DEFAULT_PASSWORD_LENGTH;
+ return DEFAULT_PASSWORD_LENGTH;
}
public int getCategoryCountPolicy()
{
- String key = CHANGEPW_CATEGORY_COUNT_KEY;
+ String key = CATEGORY_COUNT_KEY;
- if ( properties.containsKey( key ) )
+ if ( configuration.containsKey( key ) )
{
- return Integer.parseInt( properties.getProperty( key ) );
+ return Integer.parseInt( get( key ) );
}
- return CHANGEPW_DEFAULT_CATEGORY_COUNT;
+ return DEFAULT_CATEGORY_COUNT;
}
public int getTokenSizePolicy()
{
- String key = CHANGEPW_TOKEN_SIZE_KEY;
+ String key = TOKEN_SIZE_KEY;
- if ( properties.containsKey( key ) )
+ if ( configuration.containsKey( key ) )
{
- return Integer.parseInt( properties.getProperty( key ) );
+ return Integer.parseInt( get( key ) );
}
- return CHANGEPW_DEFAULT_TOKEN_SIZE;
+ return DEFAULT_TOKEN_SIZE;
}
private void prepareEncryptionTypes()
{
String[] encryptionTypeStrings = null;
- String key = CHANGEPW_ENCRYPTION_TYPES_KEY;
+ String key = ENCRYPTION_TYPES_KEY;
- if ( properties.containsKey( key ) )
+ if ( configuration.containsKey( key ) )
{
- encryptionTypeStrings = ( properties.getProperty( key ) ).split( "\\s" );
+ encryptionTypeStrings = ( get( key ) ).split( "\\s" );
}
else
{
- encryptionTypeStrings = CHANGEPW_DEFAULT_ENCRYPTION_TYPES;
+ encryptionTypeStrings = DEFAULT_ENCRYPTION_TYPES;
}
List encTypes = new ArrayList();
Added: directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/ChangePasswordServer.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/ChangePasswordServer.java?rev=329072&view=auto
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/ChangePasswordServer.java (added)
+++ directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/ChangePasswordServer.java Thu Oct 27 20:51:44 2005
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * 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 org.apache.changepw;
+
+import java.io.IOException;
+import java.util.Dictionary;
+
+import org.apache.changepw.protocol.ChangePasswordProtocolProvider;
+import org.apache.kerberos.store.PrincipalStore;
+import org.apache.mina.common.TransportType;
+import org.apache.mina.protocol.ProtocolProvider;
+import org.apache.mina.registry.Service;
+import org.apache.mina.registry.ServiceRegistry;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A wrapper encapsulating configuration, a MINA registry, and a PrincipalStore
+ * to implement a complete Change Password server.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ChangePasswordServer
+{
+ /** the log for this class */
+ private static final Logger log = LoggerFactory.getLogger( ChangePasswordServer.class );
+
+ private ChangePasswordConfiguration config;
+ private ServiceRegistry registry;
+ private PrincipalStore store;
+
+ private ProtocolProvider provider;
+ private Service tcpService;
+ private Service udpService;
+
+ public ChangePasswordServer( ChangePasswordConfiguration config, ServiceRegistry registry, PrincipalStore store )
+ {
+ this.config = config;
+ this.registry = registry;
+ this.store = store;
+
+ String name = config.getName();
+ int port = config.getPort();
+
+ try
+ {
+ provider = new ChangePasswordProtocolProvider( config, this.store );
+
+ udpService = new Service( name, TransportType.DATAGRAM, port );
+ tcpService = new Service( name, TransportType.SOCKET, port );
+
+ registry.bind( udpService, provider );
+ registry.bind( tcpService, provider );
+
+ log.debug( name + " listening on port " + port );
+ }
+ catch ( IOException ioe )
+ {
+ log.error( ioe.getMessage(), ioe );
+ }
+ }
+
+ public boolean isDifferent( Dictionary newConfig )
+ {
+ return config.isDifferent( newConfig );
+ }
+
+ public void destroy()
+ {
+ registry.unbind( udpService );
+ registry.unbind( tcpService );
+
+ registry = null;
+ provider = null;
+ udpService = null;
+ tcpService = null;
+
+ log.debug( config.getName() + " has stopped listening on port " + config.getPort() );
+ }
+}
Propchange: directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/ChangePasswordServer.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/protocol/ChangePasswordProtocolHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/protocol/ChangePasswordProtocolHandler.java?rev=329072&r1=329071&r2=329072&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/protocol/ChangePasswordProtocolHandler.java (original)
+++ directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/protocol/ChangePasswordProtocolHandler.java Thu Oct 27 20:51:44 2005
@@ -20,9 +20,9 @@
import java.net.InetAddress;
import java.net.InetSocketAddress;
+import org.apache.changepw.ChangePasswordConfiguration;
import org.apache.changepw.messages.ChangePasswordRequest;
import org.apache.changepw.service.ChangePasswordChain;
-import org.apache.changepw.service.ChangePasswordConfiguration;
import org.apache.changepw.service.ChangePasswordContext;
import org.apache.kerberos.store.PrincipalStore;
import org.apache.mina.common.IdleStatus;
Modified: directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/protocol/ChangePasswordProtocolProvider.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/protocol/ChangePasswordProtocolProvider.java?rev=329072&r1=329071&r2=329072&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/protocol/ChangePasswordProtocolProvider.java (original)
+++ directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/protocol/ChangePasswordProtocolProvider.java Thu Oct 27 20:51:44 2005
@@ -17,7 +17,7 @@
package org.apache.changepw.protocol;
-import org.apache.changepw.service.ChangePasswordConfiguration;
+import org.apache.changepw.ChangePasswordConfiguration;
import org.apache.kerberos.store.PrincipalStore;
import org.apache.mina.protocol.ProtocolCodecFactory;
import org.apache.mina.protocol.ProtocolDecoder;
Modified: directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordContext.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordContext.java?rev=329072&r1=329071&r2=329072&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordContext.java (original)
+++ directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordContext.java Thu Oct 27 20:51:44 2005
@@ -18,6 +18,7 @@
import java.net.InetAddress;
+import org.apache.changepw.ChangePasswordConfiguration;
import org.apache.changepw.messages.AbstractPasswordMessage;
import org.apache.kerberos.messages.ApplicationRequest;
import org.apache.kerberos.messages.components.Authenticator;
Modified: directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordExceptionHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordExceptionHandler.java?rev=329072&r1=329071&r2=329072&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordExceptionHandler.java (original)
+++ directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/ChangePasswordExceptionHandler.java Thu Oct 27 20:51:44 2005
@@ -20,6 +20,7 @@
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.changepw.ChangePasswordConfiguration;
import org.apache.changepw.exceptions.ChangePasswordException;
import org.apache.changepw.messages.ChangePasswordErrorModifier;
import org.apache.kerberos.exceptions.KerberosException;
Modified: directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/CheckPasswordPolicy.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/CheckPasswordPolicy.java?rev=329072&r1=329071&r2=329072&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/CheckPasswordPolicy.java (original)
+++ directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/CheckPasswordPolicy.java Thu Oct 27 20:51:44 2005
@@ -22,6 +22,7 @@
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.changepw.ChangePasswordConfiguration;
import org.apache.changepw.exceptions.ChangePasswordException;
import org.apache.changepw.exceptions.ErrorType;
import org.apache.kerberos.messages.components.Authenticator;
Modified: directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/VerifyServiceTicket.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/VerifyServiceTicket.java?rev=329072&r1=329071&r2=329072&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/VerifyServiceTicket.java (original)
+++ directory/protocol-providers/changepw/trunk/src/java/org/apache/changepw/service/VerifyServiceTicket.java Thu Oct 27 20:51:44 2005
@@ -18,6 +18,7 @@
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.changepw.ChangePasswordConfiguration;
import org.apache.kerberos.messages.components.Ticket;
import org.apache.kerberos.service.VerifyTicket;
import org.apache.protocol.common.chain.Context;