lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Frank West (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LUCENENET-357) Mostly won't work on shared hosts / Mosso cloud etc due to 'Trust' levels
Date Tue, 20 Apr 2010 21:09:50 GMT

    [ https://issues.apache.org/jira/browse/LUCENENET-357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12859063#action_12859063
] 

Frank West commented on LUCENENET-357:
--------------------------------------

Quick thing: Very glad you picked up this project, it was a shame to see such a powerful piece
of software neglected by the .net community. Very excited to see it back to life!

TBH: I mostly just modded it, sealed it up and moved on (I just commented it as it seemed
there was a lot to do)

Easiest way would be to simply deploy any web app with 2.9.1.00 and modify the web.config
to run in Medium trust. If I'm correct you wont be able to use Lucene at all.

Here's an idea of the diff (I butchered it, as I just needed it running for my own app)

Contants.cs (Fails because Medium trust has limited access to Sys Environment

	    /// <summary>The value of <tt>System.getProperty("os.name")</tt>. *</summary>
	    public static readonly System.String OS_NAME = "Windows"; //"System.Environment.GetEnvironmentVariable("OS")
?? "Linux";
		/// <summary>True iff running on Linux. </summary>
		public static readonly bool LINUX = OS_NAME.StartsWith("Linux");
		/// <summary>True iff running on Windows. </summary>
		public static readonly bool WINDOWS = OS_NAME.StartsWith("Windows");
		/// <summary>True iff running on SunOS. </summary>
		public static readonly bool SUN_OS = OS_NAME.StartsWith("SunOS");

        public static readonly System.String OS_ARCH = "Unknown";//System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
		public static readonly System.String OS_VERSION = "Unknown";//System.Environment.OSVersion.ToString();
		public static readonly System.String JAVA_VENDOR = "Unknown";//SupportClass.AppSettings.Get("java.vendor",
"");

FSDirectory.cs (Removed reference to tmp dir)

		public static readonly System.String LOCK_DIR = "";

FieldCacheImple.Cache *THIS IS THE WEAKHASTABLE issue

lock (readerCache.SyncRoot)
				{
					innerCache = (System.Collections.IDictionary) readerCache[readerKey];
					if (innerCache == null)
					{
						innerCache = new System.Collections.Hashtable();
						readerCache[readerKey] = innerCache;
						value_Renamed = null;
					}
					else
					{
						value_Renamed = innerCache[key]; <- IT FAILS HERE AFAIRemeber ("the expression cannot
be evaluated as it comes from an untrusted assembly".)
					}
					if (value_Renamed == null)
					{
						value_Renamed = new CreationPlaceholder();
						innerCache[key] = value_Renamed;
					}
				}
		

Hope this helps, g'luck.

Btw: Should I be using this version (2.9) regarding speed - if I'm disabling this caching
system? 
My site handles hundreds of requests a second, and I'm currently using a modified version
of 2.0.x which is mostly dealing with it - Should I attempt to implement this version, or
wait a bit.
Cheers,
Frank.
		

> Mostly won't work on shared hosts / Mosso cloud etc due to 'Trust' levels
> -------------------------------------------------------------------------
>
>                 Key: LUCENENET-357
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-357
>             Project: Lucene.Net
>          Issue Type: Bug
>         Environment: .NET 3.5 / Medium or Medium modified trust
>            Reporter: Frank West
>
> Initially I had to remove a few references to the Sys Environment to get it to work.
However now it fails use of the 'Weak Hashtable' - any reference to a 'weak[something]' will
fail with a security exception. The issue only happens when returning sorted results.
> As an example here's the web.config modified trust file I'm being forced to use on Mosso
(Rackspace cloud)
> <configuration>
>   <mscorlib>
>     <security>
>       <policy>
>         <PolicyLevel version="1">
>           <SecurityClasses>
>             <SecurityClass Name="AllMembershipCondition" Description="System.Security.Policy.AllMembershipCondition,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="AspNetHostingPermission" Description="System.Web.AspNetHostingPermission,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="ConfigurationPermission" Description="System.Configuration.ConfigurationPermission,
System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
>             <SecurityClass Name="DnsPermission" Description="System.Net.DnsPermission,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="EnvironmentPermission" Description="System.Security.Permissions.EnvironmentPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="FileIOPermission" Description="System.Security.Permissions.FileIOPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="FirstMatchCodeGroup" Description="System.Security.Policy.FirstMatchCodeGroup,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="IsolatedStorageFilePermission" Description="System.Security.Permissions.IsolatedStorageFilePermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="NamedPermissionSet" Description="System.Security.NamedPermissionSet"/>
>             <SecurityClass Name="PrintingPermission" Description="System.Drawing.Printing.PrintingPermission,
System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
>             <SecurityClass Name="SecurityPermission" Description="System.Security.Permissions.SecurityPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="SmtpPermission" Description="System.Net.Mail.SmtpPermission,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="SqlClientPermission" Description="System.Data.SqlClient.SqlClientPermission,
System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="StrongNameMembershipCondition" Description="System.Security.Policy.StrongNameMembershipCondition,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="UIPermission" Description="System.Security.Permissions.UIPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="UnionCodeGroup" Description="System.Security.Policy.UnionCodeGroup,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="UrlMembershipCondition" Description="System.Security.Policy.UrlMembershipCondition,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="WebPermission" Description="System.Net.WebPermission,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="ZoneMembershipCondition" Description="System.Security.Policy.ZoneMembershipCondition,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="ReflectionPermission" Description="System.Security.Permissions.ReflectionPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="OleDbPermission" Description="System.Data.OleDb.OleDbPermission,
System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="OdbcPermission" Description="System.Data.Odbc.OdbcPermission,
System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>             <SecurityClass Name="SocketPermission" Description="System.Net.SocketPermission,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
>           </SecurityClasses>
>           <NamedPermissionSets>
>             <PermissionSet class="NamedPermissionSet" version="1" Unrestricted="true"
Name="FullTrust" Description="Allows full access to all resources"/>
>             <PermissionSet class="NamedPermissionSet" version="1" Name="Nothing" Description="Denies
all resources, including the right to execute"/>
>             <PermissionSet class="NamedPermissionSet" version="1" Name="ASP.Net">
>               <IPermission class="AspNetHostingPermission" version="1" Level="Medium"/>
>               <IPermission class="ConfigurationPermission" version="1" Unrestricted="true"/>
>               <IPermission class="DnsPermission" version="1" Unrestricted="true"/>
>               <IPermission class="EnvironmentPermission" version="1" Read="TEMP;TMP;USERNAME;OS;COMPUTERNAME"/>
>               <IPermission class="FileIOPermission" version="1" Read="$AppDir$" Write="$AppDir$"
Append="$AppDir$" PathDiscovery="$AppDir$"/>
>               <IPermission class="IsolatedStorageFilePermission" version="1" Allowed="AssemblyIsolationByUser"
UserQuota="9223372036854775807"/>
>               <!-- <IPermission class="PrintingPermission" version="1" Level="DefaultPrinting"/>
-->
>               <IPermission class="SecurityPermission" version="1" Flags="Assertion,
Execution, ControlThread, ControlPrincipal, RemotingConfiguration"/>
>               <IPermission class="SmtpPermission" version="1" Access="ConnectToUnrestrictedPort"/>
>               <IPermission class="SqlClientPermission" version="1" Unrestricted="true"/>
>               <IPermission class="WebPermission" version="1" Unrestricted="true"/>
>               <IPermission class="OleDbPermission" version="1" Unrestricted="true"/>
>               <IPermission class="OdbcPermission" version="1" Unrestricted="true"/>
>               <IPermission class="SocketPermission" version="1" Unrestricted="true"
/>
>               <IPermission class="ReflectionPermission" version="1" Unrestricted="true"/>
>             </PermissionSet>
>           </NamedPermissionSets>
>           <CodeGroup class="FirstMatchCodeGroup" version="1" PermissionSetName="Nothing">
>             <IMembershipCondition class="AllMembershipCondition" version="1"/>
>             <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="ASP.Net">
>               <IMembershipCondition class="UrlMembershipCondition" version="1" Url="$AppDirUrl$/*"/>
>             </CodeGroup>
>             <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="ASP.Net">
>               <IMembershipCondition class="UrlMembershipCondition" version="1" Url="$CodeGen$/*"/>
>             </CodeGroup>
>             <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing">
>               <IMembershipCondition class="ZoneMembershipCondition" version="1" Zone="MyComputer"/>
>               <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"
Name="Microsoft_Strong_Name" Description="This code group grants code signed with the Microsoft
strong name full trust. ">
>                 <IMembershipCondition class="StrongNameMembershipCondition" version="1"
PublicKeyBlob="002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293"/>
>               </CodeGroup>
>               <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"
Name="Ecma_Strong_Name" Description="This code group grants code signed with the ECMA strong
name full trust. ">
>                 <IMembershipCondition class="StrongNameMembershipCondition" version="1"
PublicKeyBlob="00000000000000000400000000000000"/>
>               </CodeGroup>
>             </CodeGroup>
>           </CodeGroup>
>         </PolicyLevel>
>       </policy>
>     </security>
>   </mscorlib>
> </configuration>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message