You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Sean Qiu (JIRA)" <ji...@apache.org> on 2008/11/18 04:29:44 UTC

[jira] Created: (HARMONY-6021) [classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI

[classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI
----------------------------------------------------------------------------------------------------------------------

                 Key: HARMONY-6021
                 URL: https://issues.apache.org/jira/browse/HARMONY-6021
             Project: Harmony
          Issue Type: Bug
          Components: Classlib
    Affects Versions: 5.0M8
            Reporter: Sean Qiu
            Assignee: Sean Qiu
             Fix For: 5.0M9


---------
  Test
---------
private static class MockPermission extends BasicPermission{

public MockPermission(String name) { super(name); }

public MockPermission(String name, String action) { super(name,action); }

}

static class MockPermissions extends PermissionCollection{
private Vector<Permission> permissions = new Vector();

@Override
public void add(Permission permission) {
if(this.isReadOnly()){ throw new java.lang.SecurityException(); }
if(permission instanceof MockPermission){ permissions.add(permission); }
}

@Override
public Enumeration<Permission> elements() { return permissions.elements(); }

@Override
public boolean implies(Permission permission) {
if(permissions.size()==0){ return false; }
if(permission instanceof MockPermission){
for(Permission perm : permissions){
if( perm.implies(permission)){ return true; }
}
}

return false;
}

}

public void testGetPermissions() throws Exception{ 
    MockPermission read = new MockPermission("read"); 
    MockPermission write = new MockPermission("write"); 
    PermissionCollection readPC = new MockPermissions(); 
    readPC.add(read); 
    ProtectionDomain pd = new ProtectionDomain(null, null); 
    TestProvider policy = new TestProvider(); 
     policy.pc = readPC; 
     PermissionCollection permissions = policy.getPermissions(pd); 
     assertTrue(permissions instanceof MockPermissions); 
     assertSame(permissions, readPC); 
     assertTrue(permissions.implies(read));     
     assertFalse(permissions.implies(write)); 
}

----------------
Description
----------------
Harmony'll failed in this testcase since it returns a new Permissions instance rather than use the customized PermissionCollection.
The new created Permissions have different implies contact which leads to the failures.
It doesn't make sense to create a new Permissions here, since customer may extension the default permission and permission collection here.



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


Re: [jira] Created: (HARMONY-6021) [classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI

Posted by Sean Qiu <se...@gmail.com>.
Hi, all.

Do anyone have some comments on this?It is a behavior difference between RI
and our Java6.

As described, we'll create a new Permissions each time to hold both dynamic
and static permissions from the desired ProtectionDomain.
The problem is that the new instance may break the contact of implies when
the one extends basic Permission and related PermissionCollection.

Following testcase can indicate the scenario, while Policy hold a customized
PermissionCollection, it shall return the original type(RI does) rather than
using a Permissions instance to replace it (what we do).

Although spec doesn't tell the detail, I prefer to follow RI's behavior,
since ours does not make sense in my opinion.
Any commends or suggestions?

2008/11/18 Sean Qiu (JIRA) <ji...@apache.org>

> [classlib][security] Policy getPermissions(ProtectionDomain) may return
> different type of PermissionCollection from RI
>
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-6021
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6021
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>    Affects Versions: 5.0M8
>            Reporter: Sean Qiu
>            Assignee: Sean Qiu
>             Fix For: 5.0M9
>
>
> ---------
>  Test
> ---------
> private static class MockPermission extends BasicPermission{
>
> public MockPermission(String name) { super(name); }
>
> public MockPermission(String name, String action) { super(name,action); }
>
> }
>
> static class MockPermissions extends PermissionCollection{
> private Vector<Permission> permissions = new Vector();
>
> @Override
> public void add(Permission permission) {
> if(this.isReadOnly()){ throw new java.lang.SecurityException(); }
> if(permission instanceof MockPermission){ permissions.add(permission); }
> }
>
> @Override
> public Enumeration<Permission> elements() { return permissions.elements();
> }
>
> @Override
> public boolean implies(Permission permission) {
> if(permissions.size()==0){ return false; }
> if(permission instanceof MockPermission){
> for(Permission perm : permissions){
> if( perm.implies(permission)){ return true; }
> }
> }
>
> return false;
> }
>
> }
>
> public void testGetPermissions() throws Exception{
>    MockPermission read = new MockPermission("read");
>    MockPermission write = new MockPermission("write");
>    PermissionCollection readPC = new MockPermissions();
>    readPC.add(read);
>    ProtectionDomain pd = new ProtectionDomain(null, null);
>    TestProvider policy = new TestProvider();
>     policy.pc = readPC;
>     PermissionCollection permissions = policy.getPermissions(pd);
>     assertTrue(permissions instanceof MockPermissions);
>     assertSame(permissions, readPC);
>     assertTrue(permissions.implies(read));
>     assertFalse(permissions.implies(write));
> }
>
> ----------------
> Description
> ----------------
> Harmony'll failed in this testcase since it returns a new Permissions
> instance rather than use the customized PermissionCollection.
> The new created Permissions have different implies contact which leads to
> the failures.
> It doesn't make sense to create a new Permissions here, since customer may
> extension the default permission and permission collection here.
>
>
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>


-- 
Best Regards
Sean, Xiao Xia Qiu

China Software Development Lab, IBM

[jira] Updated: (HARMONY-6021) [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI

Posted by "Sean Qiu (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-6021?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sean Qiu updated HARMONY-6021:
------------------------------

    Attachment: HARMONY-6021.diff

Could some please review this patch?

> [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-6021
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6021
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>    Affects Versions: 5.0M8
>            Reporter: Sean Qiu
>            Assignee: Sean Qiu
>             Fix For: 5.0M9
>
>         Attachments: HARMONY-6021.diff
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> ---------
>   Test
> ---------
> private static class MockPermission extends BasicPermission{
> public MockPermission(String name) { super(name); }
> public MockPermission(String name, String action) { super(name,action); }
> }
> static class MockPermissions extends PermissionCollection{
> private Vector<Permission> permissions = new Vector();
> @Override
> public void add(Permission permission) {
> if(this.isReadOnly()){ throw new java.lang.SecurityException(); }
> if(permission instanceof MockPermission){ permissions.add(permission); }
> }
> @Override
> public Enumeration<Permission> elements() { return permissions.elements(); }
> @Override
> public boolean implies(Permission permission) {
> if(permissions.size()==0){ return false; }
> if(permission instanceof MockPermission){
> for(Permission perm : permissions){
> if( perm.implies(permission)){ return true; }
> }
> }
> return false;
> }
> }
> public void testGetPermissions() throws Exception{ 
>     MockPermission read = new MockPermission("read"); 
>     MockPermission write = new MockPermission("write"); 
>     PermissionCollection readPC = new MockPermissions(); 
>     readPC.add(read); 
>     ProtectionDomain pd = new ProtectionDomain(null, null); 
>     TestProvider policy = new TestProvider(); 
>      policy.pc = readPC; 
>      PermissionCollection permissions = policy.getPermissions(pd); 
>      assertTrue(permissions instanceof MockPermissions); 
>      assertSame(permissions, readPC); 
>      assertTrue(permissions.implies(read));     
>      assertFalse(permissions.implies(write)); 
> }
> ----------------
> Description
> ----------------
> Harmony'll failed in this testcase since it returns a new Permissions instance rather than use the customized PermissionCollection.
> The new created Permissions have different implies contact which leads to the failures.
> It doesn't make sense to create a new Permissions here, since customer may extension the default permission and permission collection here.

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


[jira] Updated: (HARMONY-6021) [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI

Posted by "Sean Qiu (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-6021?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sean Qiu updated HARMONY-6021:
------------------------------

    Summary: [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI  (was: [classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI)

> [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-6021
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6021
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>    Affects Versions: 5.0M8
>            Reporter: Sean Qiu
>            Assignee: Sean Qiu
>             Fix For: 5.0M9
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> ---------
>   Test
> ---------
> private static class MockPermission extends BasicPermission{
> public MockPermission(String name) { super(name); }
> public MockPermission(String name, String action) { super(name,action); }
> }
> static class MockPermissions extends PermissionCollection{
> private Vector<Permission> permissions = new Vector();
> @Override
> public void add(Permission permission) {
> if(this.isReadOnly()){ throw new java.lang.SecurityException(); }
> if(permission instanceof MockPermission){ permissions.add(permission); }
> }
> @Override
> public Enumeration<Permission> elements() { return permissions.elements(); }
> @Override
> public boolean implies(Permission permission) {
> if(permissions.size()==0){ return false; }
> if(permission instanceof MockPermission){
> for(Permission perm : permissions){
> if( perm.implies(permission)){ return true; }
> }
> }
> return false;
> }
> }
> public void testGetPermissions() throws Exception{ 
>     MockPermission read = new MockPermission("read"); 
>     MockPermission write = new MockPermission("write"); 
>     PermissionCollection readPC = new MockPermissions(); 
>     readPC.add(read); 
>     ProtectionDomain pd = new ProtectionDomain(null, null); 
>     TestProvider policy = new TestProvider(); 
>      policy.pc = readPC; 
>      PermissionCollection permissions = policy.getPermissions(pd); 
>      assertTrue(permissions instanceof MockPermissions); 
>      assertSame(permissions, readPC); 
>      assertTrue(permissions.implies(read));     
>      assertFalse(permissions.implies(write)); 
> }
> ----------------
> Description
> ----------------
> Harmony'll failed in this testcase since it returns a new Permissions instance rather than use the customized PermissionCollection.
> The new created Permissions have different implies contact which leads to the failures.
> It doesn't make sense to create a new Permissions here, since customer may extension the default permission and permission collection here.

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


[jira] Commented: (HARMONY-6021) [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI

Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-6021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12662945#action_12662945 ] 

Alexey Varlamov commented on HARMONY-6021:
------------------------------------------

Sean, the API spec explicitly states: "If this operation is supported, the returned set of permissions must be a new mutable instance and it must support heterogeneous Permission types."
AFAIS the suggested patch favors some kinks of RI over the specification. This does not look good to me unless you have really strong argument. If someone needs to use extended permission classes, this is naturally done via Policy subclassing, so your reasoning is not convincing - do you agree?


> [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-6021
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6021
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>    Affects Versions: 5.0M8
>            Reporter: Sean Qiu
>            Assignee: Sean Qiu
>             Fix For: 5.0M9
>
>         Attachments: HARMONY-6021.diff
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> ---------
>   Test
> ---------
> private static class MockPermission extends BasicPermission{
> public MockPermission(String name) { super(name); }
> public MockPermission(String name, String action) { super(name,action); }
> }
> static class MockPermissions extends PermissionCollection{
> private Vector<Permission> permissions = new Vector();
> @Override
> public void add(Permission permission) {
> if(this.isReadOnly()){ throw new java.lang.SecurityException(); }
> if(permission instanceof MockPermission){ permissions.add(permission); }
> }
> @Override
> public Enumeration<Permission> elements() { return permissions.elements(); }
> @Override
> public boolean implies(Permission permission) {
> if(permissions.size()==0){ return false; }
> if(permission instanceof MockPermission){
> for(Permission perm : permissions){
> if( perm.implies(permission)){ return true; }
> }
> }
> return false;
> }
> }
> public void testGetPermissions() throws Exception{ 
>     MockPermission read = new MockPermission("read"); 
>     MockPermission write = new MockPermission("write"); 
>     PermissionCollection readPC = new MockPermissions(); 
>     readPC.add(read); 
>     ProtectionDomain pd = new ProtectionDomain(null, null); 
>     TestProvider policy = new TestProvider(); 
>      policy.pc = readPC; 
>      PermissionCollection permissions = policy.getPermissions(pd); 
>      assertTrue(permissions instanceof MockPermissions); 
>      assertSame(permissions, readPC); 
>      assertTrue(permissions.implies(read));     
>      assertFalse(permissions.implies(write)); 
> }
> ----------------
> Description
> ----------------
> Harmony'll failed in this testcase since it returns a new Permissions instance rather than use the customized PermissionCollection.
> The new created Permissions have different implies contact which leads to the failures.
> It doesn't make sense to create a new Permissions here, since customer may extension the default permission and permission collection here.

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


[jira] Commented: (HARMONY-6021) [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI

Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-6021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12664401#action_12664401 ] 

Alexey Varlamov commented on HARMONY-6021:
------------------------------------------

I still do not see the problem. 
1) If user has a specific contract for particular Permission (sub)class, (s)he rules it freely via custom impl of PermissionCollection.implies(). 
2) Otherwise, if (s)he wants custom contract for implying permissions in general, that means (s)he have to implement custom Policy provider.
Did I miss smth? Do you have any application that caused the issue?

> [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-6021
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6021
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>    Affects Versions: 5.0M8
>            Reporter: Sean Qiu
>            Assignee: Sean Qiu
>             Fix For: 5.0M9
>
>         Attachments: HARMONY-6021.diff
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> ---------
>   Test
> ---------
> private static class MockPermission extends BasicPermission{
> public MockPermission(String name) { super(name); }
> public MockPermission(String name, String action) { super(name,action); }
> }
> static class MockPermissions extends PermissionCollection{
> private Vector<Permission> permissions = new Vector();
> @Override
> public void add(Permission permission) {
> if(this.isReadOnly()){ throw new java.lang.SecurityException(); }
> if(permission instanceof MockPermission){ permissions.add(permission); }
> }
> @Override
> public Enumeration<Permission> elements() { return permissions.elements(); }
> @Override
> public boolean implies(Permission permission) {
> if(permissions.size()==0){ return false; }
> if(permission instanceof MockPermission){
> for(Permission perm : permissions){
> if( perm.implies(permission)){ return true; }
> }
> }
> return false;
> }
> }
> public void testGetPermissions() throws Exception{ 
>     MockPermission read = new MockPermission("read"); 
>     MockPermission write = new MockPermission("write"); 
>     PermissionCollection readPC = new MockPermissions(); 
>     readPC.add(read); 
>     ProtectionDomain pd = new ProtectionDomain(null, null); 
>     TestProvider policy = new TestProvider(); 
>      policy.pc = readPC; 
>      PermissionCollection permissions = policy.getPermissions(pd); 
>      assertTrue(permissions instanceof MockPermissions); 
>      assertSame(permissions, readPC); 
>      assertTrue(permissions.implies(read));     
>      assertFalse(permissions.implies(write)); 
> }
> ----------------
> Description
> ----------------
> Harmony'll failed in this testcase since it returns a new Permissions instance rather than use the customized PermissionCollection.
> The new created Permissions have different implies contact which leads to the failures.
> It doesn't make sense to create a new Permissions here, since customer may extension the default permission and permission collection here.

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


[jira] Commented: (HARMONY-6021) [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI

Posted by "Sean Qiu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-6021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12663980#action_12663980 ] 

Sean Qiu commented on HARMONY-6021:
-----------------------------------

Thank you for paying attention. :-)
Yes, according to the spec, we should need a mutable instance.
But as the test case indicated, if user extends their own PermissionCollection's implies method,
the "new Permissions" wouldn't follow the same contract.  That's a problem.

Is there a compromised approach to care both of them? If permissions support clone.

> [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-6021
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6021
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>    Affects Versions: 5.0M8
>            Reporter: Sean Qiu
>            Assignee: Sean Qiu
>             Fix For: 5.0M9
>
>         Attachments: HARMONY-6021.diff
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> ---------
>   Test
> ---------
> private static class MockPermission extends BasicPermission{
> public MockPermission(String name) { super(name); }
> public MockPermission(String name, String action) { super(name,action); }
> }
> static class MockPermissions extends PermissionCollection{
> private Vector<Permission> permissions = new Vector();
> @Override
> public void add(Permission permission) {
> if(this.isReadOnly()){ throw new java.lang.SecurityException(); }
> if(permission instanceof MockPermission){ permissions.add(permission); }
> }
> @Override
> public Enumeration<Permission> elements() { return permissions.elements(); }
> @Override
> public boolean implies(Permission permission) {
> if(permissions.size()==0){ return false; }
> if(permission instanceof MockPermission){
> for(Permission perm : permissions){
> if( perm.implies(permission)){ return true; }
> }
> }
> return false;
> }
> }
> public void testGetPermissions() throws Exception{ 
>     MockPermission read = new MockPermission("read"); 
>     MockPermission write = new MockPermission("write"); 
>     PermissionCollection readPC = new MockPermissions(); 
>     readPC.add(read); 
>     ProtectionDomain pd = new ProtectionDomain(null, null); 
>     TestProvider policy = new TestProvider(); 
>      policy.pc = readPC; 
>      PermissionCollection permissions = policy.getPermissions(pd); 
>      assertTrue(permissions instanceof MockPermissions); 
>      assertSame(permissions, readPC); 
>      assertTrue(permissions.implies(read));     
>      assertFalse(permissions.implies(write)); 
> }
> ----------------
> Description
> ----------------
> Harmony'll failed in this testcase since it returns a new Permissions instance rather than use the customized PermissionCollection.
> The new created Permissions have different implies contact which leads to the failures.
> It doesn't make sense to create a new Permissions here, since customer may extension the default permission and permission collection here.

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


[jira] Commented: (HARMONY-6021) [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI

Posted by "Sean Qiu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-6021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12662867#action_12662867 ] 

Sean Qiu commented on HARMONY-6021:
-----------------------------------

If no one objects, I'll apply this patch.

> [java6][classlib][security] Policy getPermissions(ProtectionDomain) may return different type of PermissionCollection from RI
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-6021
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6021
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>    Affects Versions: 5.0M8
>            Reporter: Sean Qiu
>            Assignee: Sean Qiu
>             Fix For: 5.0M9
>
>         Attachments: HARMONY-6021.diff
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> ---------
>   Test
> ---------
> private static class MockPermission extends BasicPermission{
> public MockPermission(String name) { super(name); }
> public MockPermission(String name, String action) { super(name,action); }
> }
> static class MockPermissions extends PermissionCollection{
> private Vector<Permission> permissions = new Vector();
> @Override
> public void add(Permission permission) {
> if(this.isReadOnly()){ throw new java.lang.SecurityException(); }
> if(permission instanceof MockPermission){ permissions.add(permission); }
> }
> @Override
> public Enumeration<Permission> elements() { return permissions.elements(); }
> @Override
> public boolean implies(Permission permission) {
> if(permissions.size()==0){ return false; }
> if(permission instanceof MockPermission){
> for(Permission perm : permissions){
> if( perm.implies(permission)){ return true; }
> }
> }
> return false;
> }
> }
> public void testGetPermissions() throws Exception{ 
>     MockPermission read = new MockPermission("read"); 
>     MockPermission write = new MockPermission("write"); 
>     PermissionCollection readPC = new MockPermissions(); 
>     readPC.add(read); 
>     ProtectionDomain pd = new ProtectionDomain(null, null); 
>     TestProvider policy = new TestProvider(); 
>      policy.pc = readPC; 
>      PermissionCollection permissions = policy.getPermissions(pd); 
>      assertTrue(permissions instanceof MockPermissions); 
>      assertSame(permissions, readPC); 
>      assertTrue(permissions.implies(read));     
>      assertFalse(permissions.implies(write)); 
> }
> ----------------
> Description
> ----------------
> Harmony'll failed in this testcase since it returns a new Permissions instance rather than use the customized PermissionCollection.
> The new created Permissions have different implies contact which leads to the failures.
> It doesn't make sense to create a new Permissions here, since customer may extension the default permission and permission collection here.

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