You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ni...@apache.org on 2004/07/28 09:45:16 UTC

svn commit: rev 30832 - avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl

Author: niclas
Date: Wed Jul 28 00:45:14 2004
New Revision: 30832

Added:
   avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/ClientCertAuthenticator.java   (contents, props changed)
   avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/ConfigurationMimeTypes.java   (contents, props changed)
   avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/DigestAuthenticator.java   (contents, props changed)
   avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/FormAuthenticator.java   (contents, props changed)
Modified:
   avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/BasicAuthenticator.java
   avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/SystemMimeTypes.java
Log:
Added the additional Authenticators (Form, Digest & ClientCert), plus a MimeTypes class that picks up the mimetypes from its own configuration, and not depending on the system/file to provide it.

Modified: avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/BasicAuthenticator.java
==============================================================================
--- avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/BasicAuthenticator.java	(original)
+++ avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/BasicAuthenticator.java	Wed Jul 28 00:45:14 2004
@@ -28,10 +28,10 @@
 
 import org.mortbay.http.Authenticator;
 
-/** Wrapper for the Jetty SocketListener.
+/** Wrapper for the Jetty BasicAuthenticator.
  *
- * @avalon.component name="http-socket-listener" lifestyle="singleton"
- * @avalon.service type="org.mortbay.http.HttpListener"
+ * @avalon.component name="http-authenticator-basic" lifestyle="singleton"
+ * @avalon.service type="org.mortbay.http.Authenticator"
  */
 public class BasicAuthenticator extends org.mortbay.http.BasicAuthenticator
     implements Serviceable, LogEnabled

Added: avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/ClientCertAuthenticator.java
==============================================================================
--- (empty file)
+++ avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/ClientCertAuthenticator.java	Wed Jul 28 00:45:14 2004
@@ -0,0 +1,84 @@
+/* 
+ * Copyright 2004 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.avalon.http.impl;
+
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.logger.Logger;
+
+import org.apache.avalon.framework.parameters.ParameterException;
+import org.apache.avalon.framework.parameters.Parameterizable;
+import org.apache.avalon.framework.parameters.Parameters;
+
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+
+import org.apache.avalon.http.HttpContextService;
+
+import org.mortbay.http.Authenticator;
+
+/** Wrapper for the Jetty ClientCertAuthenticator
+ *
+ * @avalon.component name="http-authenticator-clientcert" lifestyle="singleton"
+ * @avalon.service type="org.mortbay.http.Authenticator"
+ */
+public class ClientCertAuthenticator extends org.mortbay.http.ClientCertAuthenticator
+    implements Serviceable, LogEnabled
+{
+    private HttpContextService  m_Context;
+    private Logger              m_Logger;
+    
+    public ClientCertAuthenticator()
+    {
+    }
+    
+    /**
+     * Enable the logging system.
+     *
+     * @avalon.logger name="http"
+     */
+    public void enableLogging( Logger logger )
+    {
+        m_Logger = logger;
+    }
+    
+    public Logger getLogger()
+    {
+        return m_Logger;
+    }
+    
+    /**  
+     * @avalon.dependency type="org.apache.avalon.http.HttpContextService"
+     *                    key="httpcontext" 
+     */
+    public void service( ServiceManager man )
+        throws ServiceException
+    {
+        m_Context = (HttpContextService) man.lookup( "httpcontext" );
+        m_Context.setAuthenticator( this );
+    }
+
+    public void parameterize( Parameters params )
+        throws ParameterException
+    {
+        int maxHandshakeSec = params.getParameterAsInteger( "max-handshake-sec", -1 );
+        if( maxHandshakeSec >= 0 )
+            setMaxHandShakeSeconds( maxHandshakeSec );
+    }
+} 
+ 

Added: avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/ConfigurationMimeTypes.java
==============================================================================
--- (empty file)
+++ avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/ConfigurationMimeTypes.java	Wed Jul 28 00:45:14 2004
@@ -0,0 +1,93 @@
+/* 
+ * Copyright 2004 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.avalon.http.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+
+import org.apache.avalon.http.MimeTypes;
+
+/**
+ * @avalon.component name="mimetypes-configuration" lifestyle="singleton"
+ * @avalon.service  type="org.apache.avalon.http.MimeTypes"
+ */
+public class ConfigurationMimeTypes
+    implements Configurable, MimeTypes
+{
+    private HashMap m_MimeTypeToExtMap;
+    private HashMap m_ExtToMimeTypeMap;
+    
+    public ConfigurationMimeTypes()
+    {
+    }
+    
+    public void configure( Configuration conf )
+        throws ConfigurationException
+    {
+        Configuration typesConf = conf.getChild( "mimetypes" );
+        configureTypes( typesConf );
+    }
+    
+    private void configureTypes( Configuration conf )
+        throws ConfigurationException
+    {
+        Configuration[] children = conf.getChildren( "type" );
+        for( int i=0 ; i < children.length ; i++ )
+        {
+            configureType( children[i] );
+        }
+    }
+    
+    private void configureType( Configuration conf )
+        throws ConfigurationException
+    {
+        ArrayList extList = new ArrayList();
+        String mime = conf.getChild( "mime" ).getValue();
+        Configuration[] extConfs = conf.getChildren( "ext" );
+        for( int i = 0 ; i < extConfs.length ; i++ )
+        {
+            String ext = extConfs[i].getValue();
+            extList.add( ext );
+            m_ExtToMimeTypeMap.put( ext, mime );
+        }
+        String[] exts = new String[ extList.size() ];
+        extList.toArray( exts );
+        m_MimeTypeToExtMap.put( mime, exts );
+    }
+    
+    public Map getExtensionMap()
+    {
+        return m_ExtToMimeTypeMap;
+    }
+    
+    public String getMimeType( String extension )
+    {
+        return (String) m_ExtToMimeTypeMap.get( extension );
+    }
+    
+    public String[] getExtensions( String mimetype )
+    {
+        return (String[]) m_MimeTypeToExtMap.get( mimetype );
+    }
+} 
+ 

Added: avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/DigestAuthenticator.java
==============================================================================
--- (empty file)
+++ avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/DigestAuthenticator.java	Wed Jul 28 00:45:14 2004
@@ -0,0 +1,72 @@
+/* 
+ * Copyright 2004 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.avalon.http.impl;
+
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.logger.Logger;
+
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+
+import org.apache.avalon.http.HttpContextService;
+
+import org.mortbay.http.Authenticator;
+
+/** Wrapper for the Jetty DigestAuthenticator.
+ *
+ * @avalon.component name="http-authenticator-digest" lifestyle="singleton"
+ * @avalon.service type="org.mortbay.http.Authenticator"
+ */
+public class DigestAuthenticator extends org.mortbay.http.DigestAuthenticator
+    implements Serviceable, LogEnabled
+{
+    private HttpContextService  m_Context;
+    private Logger              m_Logger;
+    
+    public DigestAuthenticator()
+    {
+    }
+    
+    /**
+     * Enable the logging system.
+     *
+     * @avalon.logger name="http"
+     */
+    public void enableLogging( Logger logger )
+    {
+        m_Logger = logger;
+    }
+    
+    public Logger getLogger()
+    {
+        return m_Logger;
+    }
+    
+    /**  
+     * @avalon.dependency type="org.apache.avalon.http.HttpContextService"
+     *                    key="httpcontext" 
+     */
+    public void service( ServiceManager man )
+        throws ServiceException
+    {
+        m_Context = (HttpContextService) man.lookup( "httpcontext" );
+        m_Context.setAuthenticator( this );
+    }
+} 
+ 

Added: avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/FormAuthenticator.java
==============================================================================
--- (empty file)
+++ avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/FormAuthenticator.java	Wed Jul 28 00:45:14 2004
@@ -0,0 +1,88 @@
+/* 
+ * Copyright 2004 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.avalon.http.impl;
+
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.logger.Logger;
+
+import org.apache.avalon.framework.parameters.ParameterException;
+import org.apache.avalon.framework.parameters.Parameterizable;
+import org.apache.avalon.framework.parameters.Parameters;
+
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+
+import org.apache.avalon.http.HttpContextService;
+
+import org.mortbay.http.Authenticator;
+
+/** Wrapper for the Jetty FormAuthenticator.
+ *
+ * @avalon.component name="http-authenticator-form" lifestyle="singleton"
+ * @avalon.service type="org.mortbay.http.Authenticator"
+ */
+public class FormAuthenticator extends org.mortbay.jetty.servlet.FormAuthenticator
+    implements Serviceable, LogEnabled, Parameterizable
+{
+    private HttpContextService  m_Context;
+    private Logger              m_Logger;
+    
+    public FormAuthenticator()
+    {
+    }
+    
+    /**
+     * Enable the logging system.
+     *
+     * @avalon.logger name="http"
+     */
+    public void enableLogging( Logger logger )
+    {
+        m_Logger = logger;
+    }
+    
+    public Logger getLogger()
+    {
+        return m_Logger;
+    }
+    
+    /**  
+     * @avalon.dependency type="org.apache.avalon.http.HttpContextService"
+     *                    key="httpcontext" 
+     */
+    public void service( ServiceManager man )
+        throws ServiceException
+    {
+        m_Context = (HttpContextService) man.lookup( "httpcontext" );
+        m_Context.setAuthenticator( this );
+    }
+    
+    public void parameterize( Parameters params )
+        throws ParameterException
+    {
+        String loginPage = params.getParameter( "login-page", null );
+        if( loginPage != null )
+            setLoginPage( loginPage );
+        
+        String errorPage = params.getParameter( "error-page", null );
+        if( errorPage != null )
+            setErrorPage( errorPage );
+    }
+} 
+ 

Modified: avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/SystemMimeTypes.java
==============================================================================
--- avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/SystemMimeTypes.java	(original)
+++ avalon/trunk/planet/facilities/http/impl/src/main/org/apache/avalon/http/impl/SystemMimeTypes.java	Wed Jul 28 00:45:14 2004
@@ -36,7 +36,7 @@
 import org.apache.avalon.http.MimeTypes;
 
 /**
- * @avalon.component name="mimetypes" lifestyle="singleton"
+ * @avalon.component name="mimetypes-system" lifestyle="singleton"
  * @avalon.service  type="org.apache.avalon.http.MimeTypes"
  */
 public class SystemMimeTypes

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org