Does your provider bundle export the package in which MyPermission is defined?

regards,

Karl

On Tue, Dec 16, 2008 at 11:37 AM, Hasan <[email protected]> wrote:
> Hi all,
>
> I have problems in using Permission derived from java.security.Permission
> with the felix ConditionalPermissionAdmin.
>
> I have 3 bundles:
> - PermissionManagement: defines MyPermission class and assigns this
> permission to all bundles
> - Provider: exposes a function f with security check on MyPermission
> - Consumer: try to use function f
>
> I run these bundles in felix + framework.security + scr and got access
> denied
> (Consumer is not allowed to use function f although MyPermission is already
> assigned to all bundles)
>
> Questions: How should I assign and check self-defined Permissions?
> Any help is appreciated.
> More infos to affected code snippets below.
>
> Kind regards and thanks in advance
> Hasan
>
> Problems in detail:
>
> I have a bundle named PermissionManagement which defines a new Permission
> class
> as follows:
>
> public class MyPermission extends Permission {
>   private String actions;
>
>   public MyPermission(String name, String actions) {
>       super(name);
>       this.actions = actions;
>       System.out.println("MyPermission constructor called with params: " +
>           name + ", " + actions);
>   }
>   ...
>
>   @Override
>   public String getActions() {
>       System.out.println("MyPermission getActions method called");
>       return this.actions;
>   }
>
> }
>
> PermissionManagement also defines a class called "PermissionManager" to
> assign
> MyPermission to all bundles using ConditionalPermissionAdmin as follows:
>
>   cpa.addConditionalPermissionInfo(new ConditionInfo[]{
>       null
>   },
>   new PermissionInfo[]{
>       new PermissionInfo(
>       MyPermission.class.getName(), "MyName", "MyAction")
>   });
>
> Provider bundle defines a class DummyProvider which exposes a function F
> guarded with security check
>
>   public String f() {
>       MyPermission myPerm = new MyPermission("MyName", "MyAction");
>       SecurityManager security = System.getSecurityManager();
>       if (security != null) {
>           security.checkPermission(myPerm);
>       }
>       return "test";
>   }
>
> Consumer bundle has an Activator as follows:
> public class Activator implements BundleActivator {
>
>   @Override
>   public void start(BundleContext arg0) throws Exception {
>       DummyProvider dp = new DummyProvider();
>       System.out.println(dp.f());
>   }
>   ...
> }
>
> in felix shell
> -> start file:///.../consumer-1.0-SNAPSHOT.jar
> DummyProvider constructor called
> MyPermission constructor called with params: MyName, MyAction
> MyPermission hashCode method called
> MyPermission hashCode method called
> MyPermission hashCode method called
> MyPermission hashCode method called
> MyPermission getActions method called
>
> java.security.AccessControlException: access denied
> (testbundles.permissionmanagement.MyPermission MyName MyAction)
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>



-- 
Karl Pauls
[email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to