You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/09/21 02:46:40 UTC
cvs commit: jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/interfaces ConfigurationRepository.java
donaldp 2002/09/20 17:46:40
Modified: src/java/org/apache/avalon/phoenix/components/classloader
DefaultPolicy.java
src/java/org/apache/avalon/phoenix/interfaces
ConfigurationRepository.java
Added: lib/container excalibur-loader-1.0a.jar
Removed: src/java/org/apache/avalon/phoenix/components/classloader
AbstractPolicy.java PolicyEntry.java
Log:
Start to integrate the Policy stuff in.
Revision Changes Path
1.1 jakarta-avalon-phoenix/lib/container/excalibur-loader-1.0a.jar
<<Binary file>>
1.13 +46 -122 jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/classloader/DefaultPolicy.java
Index: DefaultPolicy.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/classloader/DefaultPolicy.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- DefaultPolicy.java 6 Sep 2002 09:42:35 -0000 1.12
+++ DefaultPolicy.java 21 Sep 2002 00:46:40 -0000 1.13
@@ -8,19 +8,15 @@
package org.apache.avalon.phoenix.components.classloader;
import java.io.File;
-import java.io.InputStream;
-import java.lang.reflect.Constructor;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.Permission;
import java.security.Permissions;
-import java.security.UnresolvedPermission;
import java.security.cert.Certificate;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.PropertyPermission;
import java.util.StringTokenizer;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
@@ -28,7 +24,10 @@
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.context.DefaultContext;
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.phoenix.components.util.ResourceUtil;
+import org.apache.excalibur.policy.runtime.AbstractPolicy;
/**
* Policy that extracts information from policy files.
@@ -37,16 +36,15 @@
*/
class DefaultPolicy
extends AbstractPolicy
- implements Configurable
+ implements Configurable, LogEnabled
{
private static final Resources REZ =
ResourceManager.getPackageResources( DefaultPolicy.class );
private final File m_baseDirectory;
-
private final File m_workDirectory;
-
private DefaultContext m_context;
+ private Logger m_logger;
protected DefaultPolicy( final File baseDirectory,
final File workDirectory )
@@ -60,6 +58,11 @@
m_baseDirectory = baseDirectory;
}
+ public void enableLogging( final Logger logger )
+ {
+ m_logger = logger;
+ }
+
public void configure( final Configuration configuration )
throws ConfigurationException
{
@@ -77,54 +80,19 @@
{
final String message =
REZ.getString( "policy.notice.full-perms" );
- getLogger().info( message );
- final Permissions permissions = createPermissionSetFor( getInclusiveURL(), null );
- permissions.add( new java.security.AllPermission() );
- }
- }
-
- private URL getInclusiveURL()
- {
- try
- {
- return new URL( "file:/-" );
- }
- catch( final MalformedURLException mue )
- {
- //Never happens
- return null;
+ m_logger.info( message );
+ try
+ {
+ final Permissions permissions = createPermissionSetFor( new URL( "file:/-" ), null );
+ permissions.add( new java.security.AllPermission() );
+ }
+ catch( MalformedURLException e )
+ {
+ //never happens
+ }
}
}
- private void setupDefaultPermissions()
- {
- //these properties straight out ot ${java.home}/lib/security/java.policy
- final Permissions permissions = createPermissionSetFor( getInclusiveURL(), null );
-
- permissions.add( new PropertyPermission( "os.name", "read" ) );
- permissions.add( new PropertyPermission( "os.arch", "read" ) );
- permissions.add( new PropertyPermission( "os.version", "read" ) );
- permissions.add( new PropertyPermission( "file.separator", "read" ) );
- permissions.add( new PropertyPermission( "path.separator", "read" ) );
- permissions.add( new PropertyPermission( "line.separator", "read" ) );
-
- permissions.add( new PropertyPermission( "java.version", "read" ) );
- permissions.add( new PropertyPermission( "java.vendor", "read" ) );
- permissions.add( new PropertyPermission( "java.vendor.url", "read" ) );
-
- permissions.add( new PropertyPermission( "java.class.version", "read" ) );
- permissions.add( new PropertyPermission( "java.vm.version", "read" ) );
- permissions.add( new PropertyPermission( "java.vm.vendor", "read" ) );
- permissions.add( new PropertyPermission( "java.vm.name", "read" ) );
-
- permissions.add( new PropertyPermission( "java.specification.version", "read" ) );
- permissions.add( new PropertyPermission( "java.specification.vendor", "read" ) );
- permissions.add( new PropertyPermission( "java.specification.name", "read" ) );
- permissions.add( new PropertyPermission( "java.vm.specification.version", "read" ) );
- permissions.add( new PropertyPermission( "java.vm.specification.vendor", "read" ) );
- permissions.add( new PropertyPermission( "java.vm.specification.name", "read" ) );
- }
-
private HashMap configureKeyStores( final Configuration[] configurations )
throws ConfigurationException
{
@@ -139,11 +107,8 @@
try
{
- final KeyStore keyStore = KeyStore.getInstance( type );
- final URL url = new URL( location );
- final InputStream ins = url.openStream();
-
- keyStore.load( ins, null );
+ final KeyStore keyStore =
+ createKeyStore( type, new URL( location ) );
keyStores.put( name, keyStore );
}
@@ -189,7 +154,6 @@
final Certificate[] signers = getSigners( signedBy, keyStoreName, keyStores );
Permissions permissions = null;
-
try
{
permissions = createPermissionSetFor( codeBase, signers );
@@ -233,89 +197,33 @@
}
final Certificate[] signers = getSigners( signedBy, keyStoreName, keyStores );
- final Permission permission = createPermission( type, target, actions, signers );
-
- permissions.add( permission );
- }
-
- private String expand( final String value )
- throws ConfigurationException
- {
try
{
- final Object resolvedValue = PropertyUtil.resolveProperty( value, m_context, false );
- return resolvedValue.toString();
+ final Permission permission =
+ createPermission( type, target, actions, signers );
+ permissions.add( permission );
}
catch( final Exception e )
{
- final String message = REZ.getString( "policy.error.property.resolve", value );
- throw new ConfigurationException( message, e );
+ throw new ConfigurationException( e.getMessage(), e );
}
}
- private Permission createPermission( final String type,
- final String target,
- final String actions,
- final Certificate[] signers )
+ private String expand( final String value )
throws ConfigurationException
{
- if( null != signers )
- {
- return createUnresolvedPermission( type, target, actions, signers );
- }
-
try
{
- final Class c = Class.forName( type );
-
- Class paramClasses[] = null;
- Object params[] = null;
-
- if( null == actions && null == target )
- {
- paramClasses = new Class[ 0 ];
- params = new Object[ 0 ];
- }
- else if( null == actions )
- {
- paramClasses = new Class[ 1 ];
- paramClasses[ 0 ] = String.class;
- params = new Object[ 1 ];
- params[ 0 ] = target;
- }
- else
- {
- paramClasses = new Class[ 2 ];
- paramClasses[ 0 ] = String.class;
- paramClasses[ 1 ] = String.class;
- params = new Object[ 2 ];
- params[ 0 ] = target;
- params[ 1 ] = actions;
- }
-
- final Constructor constructor = c.getConstructor( paramClasses );
- final Object o = constructor.newInstance( params );
- return (Permission)o;
- }
- catch( final ClassNotFoundException cnfe )
- {
- return createUnresolvedPermission( type, target, actions, signers );
+ final Object resolvedValue = PropertyUtil.resolveProperty( value, m_context, false );
+ return resolvedValue.toString();
}
catch( final Exception e )
{
- final String message = REZ.getString( "policy.error.permission.create", type );
+ final String message = REZ.getString( "policy.error.property.resolve", value );
throw new ConfigurationException( message, e );
}
}
- private Permission createUnresolvedPermission( final String type,
- final String target,
- final String actions,
- final Certificate[] signers )
- {
- return new UnresolvedPermission( type, target, actions, signers );
- }
-
private Certificate[] getSigners( final String signedBy,
String keyStoreName,
final HashMap keyStores )
@@ -384,5 +292,21 @@
}
return (Certificate[])certificateSet.toArray( new Certificate[ 0 ] );
+ }
+
+ protected void error( final String message,
+ final Throwable throwable )
+ {
+ m_logger.error( message, throwable );
+ }
+
+ protected void debug( final String message )
+ {
+ m_logger.debug( message );
+ }
+
+ protected boolean isDebugEnabled()
+ {
+ return m_logger.isDebugEnabled();
}
}
1.15 +0 -1 jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/interfaces/ConfigurationRepository.java
Index: ConfigurationRepository.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/interfaces/ConfigurationRepository.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ConfigurationRepository.java 6 Aug 2002 11:57:41 -0000 1.14
+++ ConfigurationRepository.java 21 Sep 2002 00:46:40 -0000 1.15
@@ -51,7 +51,6 @@
*
* @param application Application name
* @param block Block name to store configuration for
- * @param configuration information to store.
*
* @throws ConfigurationException if configuration could not be removed
*/
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>