Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-11450

Adding application-security-domain in EJB subsystem requires server reload

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Critical Critical
    • None
    • 7.1.0.DR19
    • EJB
    • None
    • Hide

      Use https://github.com/jmartisk/mock-artifacts/tree/master/ejbclient/eap7.1-httpclient and its steps in README with some modifications:

      1) Omit step 3. Instead of it run:

      /subsystem=undertow/server=default-server/host=default-host/setting=http-invoker:remove()
      reload
      /subsystem=undertow/server=default-server/host=default-host/setting=http-invoker:add(http-authentication-factory=application-http-authentication)
      /subsystem=security/security-domain=other/authentication=classic/login-module=RealmDirect:write-attribute(name=module-options,value={password-stacking=useFirstPass,realm=ManagementRealm})
      reload
      

      2) Deploy application and try to run client side - it will failed because it tries to authorize through legacy ManagementRealm

      3) Call CLI command /subsystem=ejb3/application-security-domain=other:add(security-domain=ApplicationDomain) (and do NOT reload server) and try to run client side again - it will still fail because it still uses legacy ManagementRealm

      4) reload server and run client side again - it will pass because it starts to use Elytron ApplicationDomain

      Show
      Use https://github.com/jmartisk/mock-artifacts/tree/master/ejbclient/eap7.1-httpclient and its steps in README with some modifications: 1) Omit step 3. Instead of it run: /subsystem=undertow/server= default -server/host= default -host/setting=http-invoker:remove() reload /subsystem=undertow/server= default -server/host= default -host/setting=http-invoker:add(http-authentication-factory=application-http-authentication) /subsystem=security/security-domain=other/authentication=classic/login-module=RealmDirect:write-attribute(name=module-options,value={password-stacking=useFirstPass,realm=ManagementRealm}) reload 2) Deploy application and try to run client side - it will failed because it tries to authorize through legacy ManagementRealm 3) Call CLI command /subsystem=ejb3/application-security-domain=other:add(security-domain=ApplicationDomain) (and do NOT reload server) and try to run client side again - it will still fail because it still uses legacy ManagementRealm 4) reload server and run client side again - it will pass because it starts to use Elytron ApplicationDomain

      When application-security-domain is added in EJB subsystem then it is not used until server is reloaded. However CLI command does not set server to reload-required state, see:

      /subsystem=ejb3/application-security-domain=other:add(security-domain=ApplicationDomain)
      {"outcome" => "success"}
      

              rhn-support-iweiss Ingo Weiss
              olukas Ondrej Lukas (Inactive)
              Michal Jurc Michal Jurc
              Michal Jurc Michal Jurc
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Estimated:
                  Original Estimate - 4 hours
                  4h
                  Remaining:
                  Time Spent - 3 hours Remaining Estimate - 1 hour
                  1h
                  Logged:
                  Time Spent - 3 hours Remaining Estimate - 1 hour
                  3h