You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by "Nicko Cadell (JIRA)" <ji...@apache.org> on 2006/02/20 20:53:09 UTC

[jira] Resolved: (LOG4NET-65) Unhandled SecurityException exception for FileIOPermission while loading configuration file

     [ http://issues.apache.org/jira/browse/LOG4NET-65?page=all ]
     
Nicko Cadell resolved LOG4NET-65:
---------------------------------

    Resolution: Fixed

Checked in a code fix to this issue that adds additional try/catch blocks to check for the PathDiscovery permissions exception and to log more details of the error condition.

> Unhandled SecurityException exception for FileIOPermission while loading configuration file
> -------------------------------------------------------------------------------------------
>
>          Key: LOG4NET-65
>          URL: http://issues.apache.org/jira/browse/LOG4NET-65
>      Project: Log4net
>         Type: Bug
>   Components: Core
>     Versions: 1.2.9
>     Reporter: Nicko Cadell
>     Assignee: Nicko Cadell
>      Fix For: 1.2.10

>
> If the calling application does not have the PathDiscovery FileIOPermission a SecurityException is generated from the XmlConfiguratorAttribute.Configure method. This is called from the first LoggerManager.GetLogger in a calling assembly.
> The exception should be caught as we may potentially be injecting this exception into user code's class initialisation phase which the user would find unexpected.
> An example stack trace for the exception is:
> [SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
>    System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
>    System.Security.CodeAccessPermission.Demand() +59
>    System.AppDomainSetup.VerifyDir(String dir, Boolean normalize) +110
>    System.AppDomain.get_BaseDirectory() +61
>    log4net.Util.SystemInfo.get_ApplicationBaseDirectory() +31
>    log4net.Config.XmlConfiguratorAttribute.Configure(Assembly sourceAssembly, ILoggerRepository targetRepository) +30
>    log4net.Core.DefaultRepositorySelector.ConfigureRepository(Assembly assembly, ILoggerRepository repository) +314
>    log4net.Core.DefaultRepositorySelector.CreateRepository(Assembly repositoryAssembly, Type repositoryType, String repositoryName, Boolean readAssemblyAttributes) +532
>    log4net.Core.DefaultRepositorySelector.CreateRepository(Assembly repositoryAssembly, Type repositoryType) +42
>    log4net.Core.DefaultRepositorySelector.GetRepository(Assembly repositoryAssembly) +80
>    log4net.Core.LoggerManager.GetLogger(Assembly repositoryAssembly, String name) +132
>    log4net.LogManager.GetLogger(Assembly repositoryAssembly, String name) +30
>    log4net.LogManager.GetLogger(String name) +34

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira