Uploaded image for project: 'Karaf'
  1. Karaf
  2. KARAF-2455

Role-based security for OSGi Services

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0
    • karaf
    • None

    Description

      Add a mechanism to Karaf by which OSGi services can be secured.
      It should check the (JAAS-provided) roles of the user associated with the current thread with the roles required to invoke the OSGi service.
      The service-roles should be configurable and should not require modification of the service code, although there might be a mechanism by which services provide information about the default roles required for invocation themselves (e.g. as an annotation).

      The current user's roles are obtained using standard JSE code that obtains the current Subject from the AccessControlContext as in:

        AccessControlContext acc = AccessController.getContext();
        Subject subject = Subject.getSubject(acc);
      At this point you can get all the Principals from the subject, e.g. all the
      roles:
        Set<RolePrincipal> roles = subject.getPrincipals(RolePrincipal.class);
      

      If the user doesn't have the required roles, the service invocation should not proceed and throw a SecurityException instead.

      For full discussion see: http://mail-archives.apache.org/mod_mbox/karaf-dev/201308.mbox/%3CCAMit8SpUqwPsMQE4S9DHsPrO7Y9D3RkV6goEZy6WK-jc78o%2Bow%40mail.gmail.com%3E

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            jbonofre Jean-Baptiste Onofré
            bosschaert David Bosschaert
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment