On Jul 29, 2010, at 12:06 AM, Ivan wrote:

> Yes, I have considered this while I did the changes, the URLPattern overrides 
> the equal and hashCode methods, so the result of them are totally depending 
> on the String field pattern in the class, also each getQualifiedPattern 
> invocation, a HashSet is passed in. So I am thinking that the initial 
> patterns have already been filtered. There should be no duplicate items. 
> Please correct me if I miss anything :-)

that sounds reasonable to me.... maybe Jarek found something we're missing.

> I found Jarek opened a JIRA for the web security issue with Equonix platform, 
> is it caused by this change ?

No, that seems to be because equinox assigns a lot of permissions by default to 
a bundle, so it's a bit hard to restrict what users can do.  I thought I'd see 
if we can prevent equinox from assigning so many permissions.  Do you have a 
better idea?

thanks
david jencks


> 
> 2010/7/29 David Jencks <[email protected]>
> I'm not sure it would make a difference to the effect of the permission you 
> end up with, but the code with the hashset eliminates duplicates.  I think 
> you can have duplicates in the "everything leftover" permission (IIRC 
> /:<path1>:<path2>:<path3:....)  if some paths have different permissions for 
> different http methods.  I don't have an example and haven't looked at more 
> than this much of the code so I could easily be wrong.
> 
> thanks
> david jencks
> 
> On Jul 28, 2010, at 11:12 PM, Ivan wrote:
> 
>> Hi, Jarek:
>>     What is the difference between the old one and the new one ? While I did 
>> it in the past, I just feel that there is no need to create an extra HashSet.
>> 
>> 2010/7/29 <[email protected]>
>> Author: gawor
>> Date: Thu Jul 29 05:54:33 2010
>> New Revision: 980317
>> 
>> URL: http://svn.apache.org/viewvc?rev=980317&view=rev
>> Log:
>> restore old code which seems to work better
>> 
>> Modified:
>>    
>> geronimo/server/trunk/plugins/j2ee/geronimo-web/src/main/java/org/apache/geronimo/web/security/URLPattern.java
>> 
>> Modified: 
>> geronimo/server/trunk/plugins/j2ee/geronimo-web/src/main/java/org/apache/geronimo/web/security/URLPattern.java
>> URL: 
>> http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/j2ee/geronimo-web/src/main/java/org/apache/geronimo/web/security/URLPattern.java?rev=980317&r1=980316&r2=980317&view=diff
>> ==============================================================================
>> --- 
>> geronimo/server/trunk/plugins/j2ee/geronimo-web/src/main/java/org/apache/geronimo/web/security/URLPattern.java
>>  (original)
>> +++ 
>> geronimo/server/trunk/plugins/j2ee/geronimo-web/src/main/java/org/apache/geronimo/web/security/URLPattern.java
>>  Thu Jul 29 05:54:33 2010
>> @@ -76,21 +76,20 @@ public class URLPattern {
>>         if (type == EXACT) {
>>             return pattern;
>>         } else {
>> -            //HashSet<String> bucket = new HashSet<String>();
>> +            HashSet<String> bucket = new HashSet<String>();
>>             StringBuilder result = new StringBuilder(pattern);
>> +
>>             // Collect a set of qualifying patterns, depending on the type 
>> of this pattern.
>>             for (URLPattern p : patterns) {
>>                 if (type.check(this, p)) {
>> -                    //bucket.add(p.pattern);
>> -                    result.append(':');
>> -                    result.append(p.pattern);
>> +                    bucket.add(p.pattern);
>>                 }
>>             }
>>             // append the set of qualifying patterns
>> -            /*for (String aBucket : bucket) {
>> +            for (String aBucket : bucket) {
>>                 result.append(':');
>>                 result.append(aBucket);
>> -            }*/
>> +            }
>>             return result.toString();
>>         }
>>     }
>> 
>> 
>> 
>> 
>> 
>> -- 
>> Ivan
> 
> 
> 
> 
> -- 
> Ivan

Reply via email to