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 2004/11/08 03:12:58 UTC
svn commit: rev 56890 - in incubator/directory/kerberos/trunk/eve-kerberos/src/java/org/apache/kerberos/kdc/server: . udp
Author: erodriguez
Date: Sun Nov 7 18:12:57 2004
New Revision: 56890
Added:
incubator/directory/kerberos/trunk/eve-kerberos/src/java/org/apache/kerberos/kdc/server/
incubator/directory/kerberos/trunk/eve-kerberos/src/java/org/apache/kerberos/kdc/server/udp/
incubator/directory/kerberos/trunk/eve-kerberos/src/java/org/apache/kerberos/kdc/server/udp/EveKerberosMain.java
Log:
Main class for combined Eve and Kerberos.
Added: incubator/directory/kerberos/trunk/eve-kerberos/src/java/org/apache/kerberos/kdc/server/udp/EveKerberosMain.java
==============================================================================
--- (empty file)
+++ incubator/directory/kerberos/trunk/eve-kerberos/src/java/org/apache/kerberos/kdc/server/udp/EveKerberosMain.java Sun Nov 7 18:12:57 2004
@@ -0,0 +1,125 @@
+/*
+ * Copyright 2004 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.kerberos.kdc.server.udp;
+
+
+import org.apache.eve.jndi.EveContextFactory;
+import org.apache.kerberos.kdc.EmbeddedEveStore;
+import org.apache.kerberos.kdc.KdcConfiguration;
+import org.apache.kerberos.kdc.KdcDispatcher;
+import org.apache.kerberos.kdc.store.BootstrapStore;
+import org.apache.kerberos.kdc.store.PrincipalStore;
+
+import javax.naming.Context;
+import javax.naming.directory.BasicAttribute;
+import javax.naming.directory.BasicAttributes;
+import java.io.File;
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.util.Hashtable;
+
+
+public class EveKerberosMain
+{
+ private static final KdcConfiguration config = new KdcConfiguration();
+ private static final BootstrapStore bootstrap = new BootstrapStore( config );
+ private static PrincipalStore ldap;
+ private static final KdcDispatcher kdc = new KdcDispatcher( config, bootstrap, ldap );
+
+
+ public static void main( String[] args )
+ {
+ EveKerberosMain m = new EveKerberosMain();
+ m.go();
+ }
+
+
+ private void go()
+ {
+ Hashtable env = new Hashtable();
+ env.put( Context.PROVIDER_URL, "dc=example,dc=com" );
+ env.put( Context.INITIAL_CONTEXT_FACTORY, "org.apache.eve.jndi.EveContextFactory" );
+ env.put( EveContextFactory.WKDIR_ENV, "target" + File.separator + "eve" );
+
+ BasicAttributes attrs = new BasicAttributes( true );
+ BasicAttribute attr = new BasicAttribute( "objectClass" );
+ attr.add( "top" );
+ attr.add( "organizationalUnit" );
+ attr.add( "extensibleObject" );
+ attrs.put( attr );
+ attr = new BasicAttribute( "ou" );
+ attr.add( "testing" );
+ attrs.put( attr );
+
+ env.put( EveContextFactory.PARTITIONS_ENV, "example" );
+ env.put( EveContextFactory.SUFFIX_BASE_ENV + "example", "dc=example,dc=com" );
+ env.put( EveContextFactory.INDICES_BASE_ENV + "example", "ou objectClass" );
+ env.put( EveContextFactory.ATTRIBUTES_BASE_ENV + "example", attrs );
+
+ env.put( EmbeddedEveStore.KDC_ENTRY_LDIF_FILE, "./src/ldif/example.com" );
+ env.put( EmbeddedEveStore.KDC_ENTRY_BASEDN_KEY, "ou=Users,dc=example,dc=com" );
+
+ ldap = new EmbeddedEveStore( env );
+
+ init();
+
+ DatagramSocket socket = null;
+ try
+ {
+ socket = new DatagramSocket( config.getDefaultPort() );
+
+ while ( true )
+ {
+ byte[] requestBytes = new byte[config.getBufferSize()];
+
+ DatagramPacket packet = new DatagramPacket( requestBytes, requestBytes.length );
+ socket.receive( packet );
+
+ Thread worker = new Thread( new Connection( socket, packet, kdc ) );
+ worker.start();
+ }
+ }
+ catch ( IOException ioe )
+ {
+ ioe.printStackTrace();
+ }
+ finally
+ {
+ if ( socket != null )
+ {
+ socket.close();
+ }
+ }
+ }
+
+
+ private void init()
+ {
+ Runnable runnable = new Runnable()
+ {
+ public void run()
+ {
+ bootstrap.init();
+ ldap.init();
+ }
+ };
+ Thread storeInit = new Thread( runnable );
+ storeInit.start();
+ }
+}
+