Uploaded image for project: 'WildFly Core'
  1. WildFly Core
  2. WFCORE-2490

Multiple CredentialStores with ONE backed credential store file can rewrite values each other.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Blocker Blocker
    • None
    • None
    • Security
    • None

      Multiple CredentialStores with ONE backed credential store file can rewrite values each other.

      How to reproduce

      /subsystem=elytron/credential-store=credStore001:add(uri="cr-store://test/cs001.jceks?store.password=pass123;create.storage=true")
      /subsystem=elytron/credential-store=credStore001/alias="alias1":add(secret-value=Elytron)
      
      /subsystem=elytron/credential-store=credStore002:add(uri="cr-store://test/cs001.jceks?store.password=pass123")
      

      check CS file
      there is "alias1" entry

      /subsystem=elytron/credential-store=credStore001/alias="alias2":add(secret-value=Elytron)
      

      check CS file
      there are "alias1" and "alias2" entries

      /subsystem=elytron/credential-store=credStore002/alias="alias123":add(secret-value=Elytron)
      

      check CS file
      there are "alias1" and "alias123" entries".
      NOTE
      It is problem, because we have one backed file. In memory we have right values for all Credential Stores, but after restart we can lost new entries.

      In my opinion reason for this behaviour is:
      We have CS loaded in memory and when we add new alias to CS then we save whole CS from memory to file.
      We can set CS as non-modifiable when we use same backed file for CredentialStore but we must find better default behaviour.

      My suggestion for default behaviour
      When we want to add new alias to CredentialStore we can do this:

      1. refresh CS from file (and this file lock)
      2. add new alias to CS
      3. save CS to file
      4. unlock file

      But there is posible problem with performance....

              pskopek@redhat.com Peter Skopek
              hsvabek_jira Hynek Švábek (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: