1 87 package org.codehaus.loom.components.classloader; 88 89 import java.security.CodeSource ; 90 import java.security.PermissionCollection ; 91 import java.security.Permissions ; 92 import java.util.Map ; 93 import org.codehaus.dna.Active; 94 import org.codehaus.dna.LogEnabled; 95 import org.codehaus.dna.Logger; 96 import org.codehaus.loom.xmlpolicy.runtime.DefaultPolicy; 97 98 103 class SarPolicy 104 extends DefaultPolicy 105 implements LogEnabled, Active 106 { 107 private Logger m_logger; 108 private final Map m_grants; 109 110 public SarPolicy( final Map grants ) 111 throws Exception 112 { 113 m_grants = grants; 114 } 115 116 public void enableLogging( final Logger logger ) 117 { 118 m_logger = logger; 119 } 120 121 public void initialize() 122 throws Exception 123 { 124 processGrants( m_grants ); 125 } 126 127 public void dispose() 128 throws Exception 129 { 130 } 131 132 public PermissionCollection getPermissions( final CodeSource codeSource ) 133 { 134 if( m_logger.isDebugEnabled() ) 135 { 136 m_logger.debug( 137 "getPermissions(" + codeSource.getLocation() + ");" ); 138 } 139 140 return super.getPermissions( codeSource ); 141 } 142 143 protected Permissions createPermissionSetFor( final CodeSource codeSource ) 144 { 145 if( m_logger.isDebugEnabled() ) 146 { 147 m_logger.debug( "createPermissionSetFor(" + codeSource + ");" ); 148 } 149 150 return super.createPermissionSetFor( codeSource ); 151 } 152 153 protected void error( final String message, 154 final Throwable throwable ) 155 { 156 m_logger.error( message, throwable ); 157 } 158 } 159 | Popular Tags |