Hi, 

 

I am trying to check Conditional Permssion Admin SErvice in Equinox. For
this reason, I create a Bundle consumer, another one called service and
another called PermissionManager who will implement the Conditional
Permissions for the consumer.

 

The problem is that I do not get any exception when I try to get the service
from another location different from my allowed one.

 

My PermissionManager implements BundleActivator and get the service
ConditionalPermissionAdmin from the framework in the start method, finally
is shown below:

 

private ConditionalPermissionAdmin cpa;

 

condPermRef =
context.getServiceReference(ConditionalPermissionAdmin.class.getName());

 

cpa =(ConditionalPermissionAdmin) context.getService(condPermRef);

 

AccessController.doPrivileged(new PrivilegedAction() {

                  public Object run() {

                      cpa.addConditionalPermissionInfo(new ConditionInfo[]{

                         new
ConditionInfo(BundleLocationCondition.class.getName(),

                         new

      String[]{context.getBundle().getLocation()})

                     },

                     new PermissionInfo[]{

                         new PermissionInfo(

                         AllPermission.class.getName(), "", "")

                     });

 

                      cpa.addConditionalPermissionInfo(

                               new ConditionInfo[]{

                                   new ConditionInfo(

                                   BundleLocationCondition.class.getName(),

                                   new

 

 
String[]{"file:C:\\equinoxv34\\clientserviceconditional.jar"})

                               },

                               new PermissionInfo[]{

                                   new PermissionInfo

 
(ServicePermission.class.getName(),"dconde.osgi.serviceconditional.ServiceCo
nditional","GET")

                                   

                                    });

                     // Add other permissions

                      return null; // nothing to return

                  }

              });

 

If I try to get the Service from another consumer in another location no
exception is thrown, and I do not really know what I am missing. What do I
need to apply Conditional Permission?

 

I am not applying as the same time Local Permission with permissions.perm,
Does this have something to do with my results?

 

I am launching Equinox in this way:

 

java
-Djava.security.manager=org.eclipse.osgi.framework.internal.core.FrameworkSe
curityManager -Djava.security.policy=policy.policy -jar
org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar -console

 

Any advice will be helpful

 

Thanks in advance

 

David

 

 

_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to