Uploaded image for project: 'River (Retired)'
  1. River (Retired)
  2. RIVER-436

Codebase annotations should be objects implementing a known interface instead of Strings

    XMLWordPrintableJSON

Details

    Description

      Right now codebase annotations are Strings containing a space separated list of URLs . This has several drawbacks:
      1. Code downloading is not dynamically extensible. All the parties in the network have to apriori agree on a set of URL handlers. Introduction of a new provisioning mechanism - for example based on Maven - requires at least reconfiguration of all participants
      2. There is no way of verifying downloaded code before it is actually executed. Right now a TrustVerifier is obtained and used only after a service proxy was deserialized which enables untrusted code to execute during deserialization (see also RIVER-362).

      The idea is to make code downloading extensible. Codebase annotations should be objects implementing a well known interface encapsulating the way how code is downloaded.
      Prior to execution codebase annotations would be verified for trust.
      That way:
      1. Clients are decoupled from the mechanism used to download service proxy code
      2. No code is executed before verifying the codebase for trust.

      Attachments

        1. codebase.patch
          162 kB
          Michal Kleczek

        Activity

          People

            Unassigned Unassigned
            mkleczek Michal Kleczek
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: