0 Replies Latest reply on Apr 30, 2019 10:06 AM by akashr45

    Using Elytron with Database Identity Store

    akashr45

      I am trying to achieve EJB authentication from Database Identity Store using Elytron and Wildfly 15.

       

      I am using Oracle XE 11 and Wildfly version 15.0.1.Final

       

      The things that I have tried:

       

      CASE 1 :

      ------------

      => I am testing with this project "https://github.com/wildfly/quickstart/tree/15.x/ejb-security". I created jdbc-realm, security-domain, sasl-authentication-factory, http-remoting-connector and application security domain. Below is my modified standalone.xml and wildfly-config.xml

       

      standalone.xml

      <?xml version='1.0' encoding='UTF-8'?>

      <server xmlns="urn:jboss:domain:9.0">

          <extensions>

              <extension module="org.jboss.as.clustering.infinispan"/>

              <extension module="org.jboss.as.connector"/>

              <extension module="org.jboss.as.deployment-scanner"/>

              <extension module="org.jboss.as.ee"/>

              <extension module="org.jboss.as.ejb3"/>

              <extension module="org.jboss.as.jaxrs"/>

              <extension module="org.jboss.as.jdr"/>

              <extension module="org.jboss.as.jmx"/>

              <extension module="org.jboss.as.jpa"/>

              <extension module="org.jboss.as.jsf"/>

              <extension module="org.jboss.as.logging"/>

              <extension module="org.jboss.as.mail"/>

              <extension module="org.jboss.as.naming"/>

              <extension module="org.jboss.as.pojo"/>

              <extension module="org.jboss.as.remoting"/>

              <extension module="org.jboss.as.sar"/>

              <extension module="org.jboss.as.security"/>

              <extension module="org.jboss.as.transactions"/>

              <extension module="org.jboss.as.webservices"/>

              <extension module="org.jboss.as.weld"/>

              <extension module="org.wildfly.extension.batch.jberet"/>

              <extension module="org.wildfly.extension.bean-validation"/>

              <extension module="org.wildfly.extension.core-management"/>

              <extension module="org.wildfly.extension.discovery"/>

              <extension module="org.wildfly.extension.ee-security"/>

              <extension module="org.wildfly.extension.elytron"/>

              <extension module="org.wildfly.extension.io"/>

              <extension module="org.wildfly.extension.microprofile.config-smallrye"/>

              <extension module="org.wildfly.extension.microprofile.health-smallrye"/>

              <extension module="org.wildfly.extension.microprofile.metrics-smallrye"/>

              <extension module="org.wildfly.extension.microprofile.opentracing-smallrye"/>

              <extension module="org.wildfly.extension.request-controller"/>

              <extension module="org.wildfly.extension.security.manager"/>

              <extension module="org.wildfly.extension.undertow"/>

          </extensions>

          <management>

              <security-realms>

                  <security-realm name="ManagementRealm">

                      <authentication>

                          <local default-user="$local" skip-group-loading="true"/>

                          <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>

                      </authentication>

                      <authorization map-groups-to-roles="false">

                          <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>

                      </authorization>

                  </security-realm>

                  <security-realm name="ApplicationRealm">

                      <server-identities>

                          <ssl>

                              <keystore path="application.keystore" relative-to="jboss.server.config.dir" keystore-password="password" alias="server" key-password="password" generate-self-signed-certificate-host="localhost"/>

                          </ssl>

                      </server-identities>

                      <authentication>

                          <local default-user="$local" allowed-users="*" skip-group-loading="true"/>

                          <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>

                      </authentication>

                      <authorization>

                          <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>

                      </authorization>

                  </security-realm>

              </security-realms>

              <audit-log>

                  <formatters>

                      <json-formatter name="json-formatter"/>

                  </formatters>

                  <handlers>

                      <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/>

                  </handlers>

                  <logger log-boot="true" log-read-only="false" enabled="false">

                      <handlers>

                          <handler name="file"/>

                      </handlers>

                  </logger>

              </audit-log>

              <management-interfaces>

                  <http-interface security-realm="ManagementRealm">

                      <http-upgrade enabled="true"/>

                      <socket-binding http="management-http"/>

                  </http-interface>

              </management-interfaces>

              <access-control provider="simple">

                  <role-mapping>

                      <role name="SuperUser">

                          <include>

                              <user name="$local"/>

                          </include>

                      </role>

                  </role-mapping>

              </access-control>

          </management>

          <profile>

              <subsystem xmlns="urn:jboss:domain:logging:6.0">

                  <console-handler name="CONSOLE">

                      <level name="INFO"/>

                      <formatter>

                          <named-formatter name="COLOR-PATTERN"/>

                      </formatter>

                  </console-handler>

                  <periodic-rotating-file-handler name="FILE" autoflush="true">

                      <formatter>

                          <named-formatter name="PATTERN"/>

                      </formatter>

                      <file relative-to="jboss.server.log.dir" path="server.log"/>

                      <suffix value=".yyyy-MM-dd"/>

                      <append value="true"/>

                  </periodic-rotating-file-handler>

                  <logger category="com.arjuna">

                      <level name="WARN"/>

                  </logger>

                  <logger category="io.jaegertracing.Configuration">

                      <level name="WARN"/>

                  </logger>

                  <logger category="org.jboss.as.config">

                      <level name="DEBUG"/>

                  </logger>

                  <logger category="sun.rmi">

                      <level name="WARN"/>

                  </logger>

                  <root-logger>

                      <level name="INFO"/>

                      <handlers>

                          <handler name="CONSOLE"/>

                          <handler name="FILE"/>

                      </handlers>

                  </root-logger>

                  <formatter name="PATTERN">

                      <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>

                  </formatter>

                  <formatter name="COLOR-PATTERN">

                      <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>

                  </formatter>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:batch-jberet:2.0">

                  <default-job-repository name="in-memory"/>

                  <default-thread-pool name="batch"/>

                  <job-repository name="in-memory">

                      <in-memory/>

                  </job-repository>

                  <thread-pool name="batch">

                      <max-threads count="10"/>

                      <keepalive-time time="30" unit="seconds"/>

                  </thread-pool>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/>

              <subsystem xmlns="urn:jboss:domain:core-management:1.0"/>

              <subsystem xmlns="urn:jboss:domain:datasources:5.0">

                  <datasources>

                      <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">

                          <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>

                          <driver>h2</driver>

                          <security>

                              <user-name>sa</user-name>

                              <password>sa</password>

                          </security>

                      </datasource>

                      <datasource jndi-name="java:/OracleDS" pool-name="OracleDS" enabled="true" use-java-context="true">

                          <connection-url>jdbc:oracle:thin:@localhost:1521:XE</connection-url>

                          <driver>OracleDS</driver>

                          <security>

                              <user-name>db-username</user-name>

                              <password>password</password>

                          </security>

                      </datasource>

                      <drivers>

                          <driver name="h2" module="com.h2database.h2">

                              <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>

                          </driver>

                          <driver name="OracleDS" module="com.oracle">

                              <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>

                          </driver>

                      </drivers>

                  </datasources>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">

                  <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:discovery:1.0"/>

              <subsystem xmlns="urn:jboss:domain:ee:4.0">

                  <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>

                  <concurrent>

                      <context-services>

                          <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/>

                      </context-services>

                      <managed-thread-factories>

                          <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/>

                      </managed-thread-factories>

                      <managed-executor-services>

                          <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" keepalive-time="5000"/>

                      </managed-executor-services>

                      <managed-scheduled-executor-services>

                          <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" keepalive-time="3000"/>

                      </managed-scheduled-executor-services>

                  </concurrent>

                  <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:ee-security:1.0"/>

              <subsystem xmlns="urn:jboss:domain:ejb3:5.0">

                  <session-bean>

                      <stateless>

                          <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>

                      </stateless>

                      <stateful default-access-timeout="5000" cache-ref="simple" passivation-disabled-cache-ref="simple"/>

                      <singleton default-access-timeout="5000"/>

                  </session-bean>

                  <pools>

                      <bean-instance-pools>

                          <strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                          <strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                      </bean-instance-pools>

                  </pools>

                  <caches>

                      <cache name="simple"/>

                      <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/>

                  </caches>

                  <passivation-stores>

                      <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/>

                  </passivation-stores>

                  <async thread-pool-name="default"/>

                  <timer-service thread-pool-name="default" default-data-store="default-file-store">

                      <data-stores>

                          <file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/>

                      </data-stores>

                  </timer-service>

                  <remote connector-ref="database-remoting-connector" thread-pool-name="default">

                      <channel-creation-options>

                          <option name="READ_TIMEOUT" value="${prop.remoting-connector.read.timeout:20}" type="xnio"/>

                          <option name="MAX_OUTBOUND_MESSAGES" value="1234" type="remoting"/>

                      </channel-creation-options>

                  </remote>

                  <application-security-domains>

                      <application-security-domain name="database-ejb-security-domain" security-domain="DatabaseDomain"/>

                  </application-security-domains>

                  <thread-pools>

                      <thread-pool name="default">

                          <max-threads count="10"/>

                          <keepalive-time time="100" unit="milliseconds"/>

                      </thread-pool>

                  </thread-pools>

                  <default-security-domain value="database-ejb-security-domain"/>

                  <default-missing-method-permissions-deny-access value="true"/>

                  <log-system-exceptions value="true"/>

              </subsystem>

              <subsystem xmlns="urn:wildfly:elytron:5.0" final-providers="combined-providers" disallowed-providers="OracleUcrypto">

                  <providers>

                      <aggregate-providers name="combined-providers">

                          <providers name="elytron"/>

                          <providers name="openssl"/>

                      </aggregate-providers>

                      <provider-loader name="elytron" module="org.wildfly.security.elytron"/>

                      <provider-loader name="openssl" module="org.wildfly.openssl"/>

                  </providers>

                  <audit-logging>

                      <file-audit-log name="local-audit" path="audit.log" relative-to="jboss.server.log.dir" format="JSON"/>

                  </audit-logging>

                  <security-domains>

                      <security-domain name="ApplicationDomain" default-realm="ApplicationRealm" permission-mapper="default-permission-mapper">

                          <realm name="ApplicationRealm" role-decoder="groups-to-roles"/>

                          <realm name="local"/>

                      </security-domain>

                      <security-domain name="ManagementDomain" default-realm="ManagementRealm" permission-mapper="default-permission-mapper">

                          <realm name="ManagementRealm" role-decoder="groups-to-roles"/>

                          <realm name="local" role-mapper="super-user-mapper"/>

                      </security-domain>

                      <security-domain name="DatabaseDomain" default-realm="DatabaseRealm" permission-mapper="default-permission-mapper">

                          <realm name="DatabaseRealm" role-decoder="groups-to-roles"/>

                      </security-domain>

                  </security-domains>

                  <security-realms>

                      <identity-realm name="local" identity="$local"/>

                      <properties-realm name="ApplicationRealm">

                          <users-properties path="application-users.properties" relative-to="jboss.server.config.dir" digest-realm-name="ApplicationRealm"/>

                          <groups-properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>

                      </properties-realm>

                      <properties-realm name="ManagementRealm">

                          <users-properties path="mgmt-users.properties" relative-to="jboss.server.config.dir" digest-realm-name="ManagementRealm"/>

                          <groups-properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>

                      </properties-realm>

                      <jdbc-realm name="DatabaseRealm">

                          <principal-query data-source="OracleDS" sql="SELECT password, role from sa_user where username=?">

                              <attribute-mapping>

                                  <attribute to="groups" index="2"/>

                              </attribute-mapping>

                              <clear-password-mapper password-index="1"/>

                          </principal-query>

                      </jdbc-realm>

                  </security-realms>

                  <mappers>

                      <simple-permission-mapper name="default-permission-mapper" mapping-mode="first">

                          <permission-mapping>

                              <principal name="anonymous"/>

                              <permission-set name="default-permissions"/>

                          </permission-mapping>

                          <permission-mapping match-all="true">

                              <permission-set name="login-permission"/>

                              <permission-set name="default-permissions"/>

                          </permission-mapping>

                      </simple-permission-mapper>

                      <constant-realm-mapper name="local" realm-name="local"/>

                      <simple-role-decoder name="groups-to-roles" attribute="groups"/>

                      <constant-role-mapper name="super-user-mapper">

                          <role name="SuperUser"/>

                      </constant-role-mapper>

                  </mappers>

                  <permission-sets>

                      <permission-set name="login-permission">

                          <permission class-name="org.wildfly.security.auth.permission.LoginPermission"/>

                      </permission-set>

                      <permission-set name="default-permissions">

                          <permission class-name="org.wildfly.extension.batch.jberet.deployment.BatchPermission" module="org.wildfly.extension.batch.jberet" target-name="*"/>

                          <permission class-name="org.wildfly.transaction.client.RemoteTransactionPermission" module="org.wildfly.transaction.client"/>

                          <permission class-name="org.jboss.ejb.client.RemoteEJBPermission" module="org.jboss.ejb-client"/>

                      </permission-set>

                  </permission-sets>

                  <http>

                      <http-authentication-factory name="management-http-authentication" security-domain="ManagementDomain" http-server-mechanism-factory="global">

                          <mechanism-configuration>

                              <mechanism mechanism-name="DIGEST">

                                  <mechanism-realm realm-name="ManagementRealm"/>

                              </mechanism>

                          </mechanism-configuration>

                      </http-authentication-factory>

                      <provider-http-server-mechanism-factory name="global"/>

                  </http>

                  <sasl>

                      <sasl-authentication-factory name="application-sasl-authentication" sasl-server-factory="configured" security-domain="ApplicationDomain">

                          <mechanism-configuration>

                              <mechanism mechanism-name="JBOSS-LOCAL-USER" realm-mapper="local"/>

                              <mechanism mechanism-name="DIGEST-MD5">

                                  <mechanism-realm realm-name="ApplicationRealm"/>

                              </mechanism>

                          </mechanism-configuration>

                      </sasl-authentication-factory>

                      <sasl-authentication-factory name="management-sasl-authentication" sasl-server-factory="configured" security-domain="ManagementDomain">

                          <mechanism-configuration>

                              <mechanism mechanism-name="JBOSS-LOCAL-USER" realm-mapper="local"/>

                              <mechanism mechanism-name="DIGEST-MD5">

                                  <mechanism-realm realm-name="ManagementRealm"/>

                              </mechanism>

                          </mechanism-configuration>

                      </sasl-authentication-factory>

                      <sasl-authentication-factory name="database-sasl-authentication" sasl-server-factory="configured" security-domain="DatabaseDomain">

                          <mechanism-configuration>

                              <mechanism mechanism-name="BASIC">

                                  <mechanism-realm realm-name="DatabaseRealm"/>

                              </mechanism>

                          </mechanism-configuration>

                      </sasl-authentication-factory>

                      <configurable-sasl-server-factory name="configured" sasl-server-factory="elytron">

                          <properties>

                              <property name="wildfly.sasl.local-user.default-user" value="$local"/>

                          </properties>

                      </configurable-sasl-server-factory>

                      <mechanism-provider-filtering-sasl-server-factory name="elytron" sasl-server-factory="global">

                          <filters>

                              <filter provider-name="WildFlyElytron"/>

                          </filters>

                      </mechanism-provider-filtering-sasl-server-factory>

                      <provider-sasl-server-factory name="global"/>

                  </sasl>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:infinispan:7.0">

                  <cache-container name="server" default-cache="default" module="org.wildfly.clustering.server">

                      <local-cache name="default">

                          <transaction mode="BATCH"/>

                      </local-cache>

                  </cache-container>

                  <cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan">

                      <local-cache name="passivation">

                          <locking isolation="REPEATABLE_READ"/>

                          <transaction mode="BATCH"/>

                          <file-store passivation="true" purge="false"/>

                      </local-cache>

                  </cache-container>

                  <cache-container name="ejb" aliases="sfsb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan">

                      <local-cache name="passivation">

                          <locking isolation="REPEATABLE_READ"/>

                          <transaction mode="BATCH"/>

                          <file-store passivation="true" purge="false"/>

                      </local-cache>

                  </cache-container>

                  <cache-container name="hibernate" module="org.infinispan.hibernate-cache">

                      <local-cache name="entity">

                          <transaction mode="NON_XA"/>

                          <object-memory size="10000"/>

                          <expiration max-idle="100000"/>

                      </local-cache>

                      <local-cache name="local-query">

                          <object-memory size="10000"/>

                          <expiration max-idle="100000"/>

                      </local-cache>

                      <local-cache name="timestamps"/>

                  </cache-container>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:io:3.0">

                  <worker name="default"/>

                  <buffer-pool name="default"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>

              <subsystem xmlns="urn:jboss:domain:jca:5.0">

                  <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>

                  <bean-validation enabled="true"/>

                  <default-workmanager>

                      <short-running-threads>

                          <core-threads count="50"/>

                          <queue-length count="50"/>

                          <max-threads count="50"/>

                          <keepalive-time time="10" unit="seconds"/>

                      </short-running-threads>

                      <long-running-threads>

                          <core-threads count="50"/>

                          <queue-length count="50"/>

                          <max-threads count="50"/>

                          <keepalive-time time="10" unit="seconds"/>

                      </long-running-threads>

                  </default-workmanager>

                  <cached-connection-manager/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:jdr:1.0"/>

              <subsystem xmlns="urn:jboss:domain:jmx:1.3">

                  <expose-resolved-model/>

                  <expose-expression-model/>

                  <remoting-connector/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:jpa:1.1">

                  <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:jsf:1.1"/>

              <subsystem xmlns="urn:jboss:domain:mail:3.0">

                  <mail-session name="default" jndi-name="java:jboss/mail/Default">

                      <smtp-server outbound-socket-binding-ref="mail-smtp"/>

                  </mail-session>

              </subsystem>

              <subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"/>

              <subsystem xmlns="urn:wildfly:microprofile-health-smallrye:1.0" security-enabled="false"/>

              <subsystem xmlns="urn:wildfly:microprofile-metrics-smallrye:1.0" security-enabled="false" exposed-subsystems="*"/>

              <subsystem xmlns="urn:wildfly:microprofile-opentracing-smallrye:1.0"/>

              <subsystem xmlns="urn:jboss:domain:naming:2.0">

                  <remote-naming/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:pojo:1.0"/>

              <subsystem xmlns="urn:jboss:domain:remoting:4.0">

                  <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>

                  <http-connector name="database-remoting-connector" connector-ref="db-rem-connector" security-realm="DatabaseRealm" sasl-authentication-factory="database-sasl-authentication"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>

              <subsystem xmlns="urn:jboss:domain:resource-adapters:5.0"/>

              <subsystem xmlns="urn:jboss:domain:sar:1.0"/>

              <subsystem xmlns="urn:jboss:domain:security:2.0">

                  <security-domains>

                      <security-domain name="other" cache-type="default">

                          <authentication>

                              <login-module code="Remoting" flag="optional">

                                  <module-option name="password-stacking" value="useFirstPass"/>

                              </login-module>

                              <login-module code="RealmDirect" flag="required">

                                  <module-option name="password-stacking" value="useFirstPass"/>

                              </login-module>

                          </authentication>

                      </security-domain>

                      <security-domain name="jboss-web-policy" cache-type="default">

                          <authorization>

                              <policy-module code="Delegating" flag="required"/>

                          </authorization>

                      </security-domain>

                      <security-domain name="jaspitest" cache-type="default">

                          <authentication-jaspi>

                              <login-module-stack name="dummy">

                                  <login-module code="Dummy" flag="optional"/>

                              </login-module-stack>

                              <auth-module code="Dummy"/>

                          </authentication-jaspi>

                      </security-domain>

                      <security-domain name="jboss-ejb-policy" cache-type="default">

                          <authorization>

                              <policy-module code="Delegating" flag="required"/>

                          </authorization>

                      </security-domain>

                  </security-domains>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:security-manager:1.0">

                  <deployment-permissions>

                      <maximum-set>

                          <permission class="java.security.AllPermission"/>

                      </maximum-set>

                  </deployment-permissions>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:transactions:5.0">

                  <core-environment node-identifier="${jboss.tx.node.id:1}">

                      <process-id>

                          <uuid/>

                      </process-id>

                  </core-environment>

                  <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>

                  <object-store path="tx-object-store" relative-to="jboss.server.data.dir"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:undertow:8.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other">

                  <buffer-cache name="default"/>

                  <server name="default-server">

                      <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>

                      <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>

                      <host name="default-host" alias="localhost">

                          <location name="/" handler="welcome-content"/>

                          <http-invoker security-realm="ApplicationRealm"/>

                      </host>

                  </server>

                  <servlet-container name="default">

                      <jsp-config/>

                      <websockets/>

                  </servlet-container>

                  <handlers>

                      <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>

                  </handlers>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:webservices:2.0">

                  <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>

                  <endpoint-config name="Standard-Endpoint-Config"/>

                  <endpoint-config name="Recording-Endpoint-Config">

                      <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">

                          <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>

                      </pre-handler-chain>

                  </endpoint-config>

                  <client-config name="Standard-Client-Config"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:weld:4.0"/>

          </profile>

          <interfaces>

              <interface name="management">

                  <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>

              </interface>

              <interface name="public">

                  <inet-address value="${jboss.bind.address:127.0.0.1}"/>

              </interface>

          </interfaces>

          <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">

              <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>

              <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>

              <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>

              <socket-binding name="http" port="${jboss.http.port:8080}"/>

              <socket-binding name="https" port="${jboss.https.port:8443}"/>

              <socket-binding name="txn-recovery-environment" port="4712"/>

              <socket-binding name="txn-status-manager" port="4713"/>

              <outbound-socket-binding name="mail-smtp">

                  <remote-destination host="localhost" port="25"/>

              </outbound-socket-binding>

          </socket-binding-group>

      </server>

       

      wildfly-config.xml

      <configuration>

          <authentication-client xmlns="urn:elytron:1.0">

              <authentication-rules>

                  <rule use-configuration="default-config"/>

              </authentication-rules>

              <authentication-configurations>

                  <configuration name="default-config">

                      <set-user-name name="demo_user"/>

                      <credentials>

                          <clear-password password="password"/>

                      </credentials>

                      <sasl-mechanism-selector selector="BASIC"/>

                      <providers>

                          <use-service-loader />

                      </providers>

                  </configuration>

              </authentication-configurations>

          </authentication-client>

      </configuration>

      also in the SecuredEJB.java, in @SecurityDomain I am using the new application-security-domain mentioned in the standalone.xml.

       

      SecuredEJB.java

      @Stateless
      @Remote(SecuredEJBRemote.class)

      @RolesAllowed({ "guest" })

      @SecurityDomain("database-ejb-security-domain")

      public class SecuredEJB implements SecuredEJBRemote {

       

         // Inject the Session Context
         @Resource
         private SessionContext ctx;

         /**
        * Secured EJB method using security annotations
        */
         public String getSecurityInfo() {

         // Session context injected using the resource annotation
         Principal principal = ctx.getCallerPrincipal();
        return principal.toString();
         }

       

         @RolesAllowed("admin")

         public boolean administrativeMethod() {

         return true;
         }

      }

       

      When I try to deploy the application it fails with log:

      12:16:23,073 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) WFLYSRV0027: Starting deployment of "ejb-security.jar" (runtime-name: "ejb-security.jar")

      12:16:23,614 INFO [org.jboss.weld.deployer] (MSC service thread 1-3) WFLYWELD0003: Processing weld deployment ejb-security.jar

      12:16:23,935 INFO [org.hibernate.validator.internal.util.Version] (MSC service thread 1-3) HV000001: Hibernate Validator 6.0.14.Final

      12:16:24,197 INFO [org.jboss.as.ejb3.deployment] (MSC service thread 1-3) WFLYEJB0473: JNDI bindings for session bean named 'SecuredEJB' in deployment unit 'deployment "ejb-security.jar"' are as follows:

       

      java:global/ejb-security/SecuredEJB!org.jboss.as.quickstarts.ejb_security.SecuredEJBRemote

      java:app/ejb-security/SecuredEJB!org.jboss.as.quickstarts.ejb_security.SecuredEJBRemote

      java:module/SecuredEJB!org.jboss.as.quickstarts.ejb_security.SecuredEJBRemote

      java:jboss/exported/ejb-security/SecuredEJB!org.jboss.as.quickstarts.ejb_security.SecuredEJBRemote

      ejb:ejb-security/SecuredEJB!org.jboss.as.quickstarts.ejb_security.SecuredEJBRemote

      java:global/ejb-security/SecuredEJB

      java:app/ejb-security/SecuredEJB

      java:module/SecuredEJB

       

      12:16:24,656 INFO [org.jboss.weld.Version] (MSC service thread 1-5) WELD-000900: 3.0.5 (Final)

      12:16:24,945 INFO [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-1) ISPN000128: Infinispan version: Infinispan 'Infinity Minus ONE +2' 9.4.3.Final

      12:16:25,603 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 74) WFLYCLINF0002: Started client-mappings cache from ejb container

      12:16:25,628 ERROR [org.jboss.as.server] (External Management Request Threads -- 1) WFLYSRV0021: Deploy of deployment "ejb-security.jar" was rolled back with the following failure message: undefined

      12:16:25,696 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 74) WFLYCLINF0003: Stopped client-mappings cache from ejb container

      12:16:25,715 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) WFLYSRV0028: Stopped deployment ejb-security.jar (runtime-name: ejb-security.jar) in 86ms

      12:16:25,733 INFO [org.jboss.as.controller] (External Management Request Threads -- 1) WFLYCTL0183: Service status report

      WFLYCTL0184: New missing/unsatisfied dependencies:

        service jboss.remoting.remotingConnectorInfoService.database-remoting-connector (missing) dependents: [service org.wildfly.clustering.cache.registry-entry.ejb.client-mappings, service org.wildfly.ejb.remote]

      WFLYCTL0448: 5 additional services are down due to their dependencies being missing or failed

      12:23:21,876 INFO [org.jboss.as.repository] (ServerService Thread Pool -- 75) WFLYDR0009: Content /wildfly-15.0.1.Final/standalone/data/content/3b/15fad382a4880e354ba1c1f3ec317e913e0672 is obsolete and will be removed

      12:23:21,884 INFO [org.jboss.as.repository] (ServerService Thread Pool -- 75) WFLYDR0002: Content removed from location /wildfly-15.0.1.Final/standalone/data/content/3b/15fad382a4880e354ba1c1f3ec317e913e0672/content

       

       

      CASE 2 :

      ------------

      => I tried to use the ApplicationDomain and add a new mechanism that uses our defined database realm.

       

      standalone.xml

      <?xml version='1.0' encoding='UTF-8'?>

       

       

      <server xmlns="urn:jboss:domain:9.0">

          <extensions>

              <extension module="org.jboss.as.clustering.infinispan"/>

              <extension module="org.jboss.as.connector"/>

              <extension module="org.jboss.as.deployment-scanner"/>

              <extension module="org.jboss.as.ee"/>

              <extension module="org.jboss.as.ejb3"/>

              <extension module="org.jboss.as.jaxrs"/>

              <extension module="org.jboss.as.jdr"/>

              <extension module="org.jboss.as.jmx"/>

              <extension module="org.jboss.as.jpa"/>

              <extension module="org.jboss.as.jsf"/>

              <extension module="org.jboss.as.logging"/>

              <extension module="org.jboss.as.mail"/>

              <extension module="org.jboss.as.naming"/>

              <extension module="org.jboss.as.pojo"/>

              <extension module="org.jboss.as.remoting"/>

              <extension module="org.jboss.as.sar"/>

              <extension module="org.jboss.as.security"/>

              <extension module="org.jboss.as.transactions"/>

              <extension module="org.jboss.as.webservices"/>

              <extension module="org.jboss.as.weld"/>

              <extension module="org.wildfly.extension.batch.jberet"/>

              <extension module="org.wildfly.extension.bean-validation"/>

              <extension module="org.wildfly.extension.core-management"/>

              <extension module="org.wildfly.extension.discovery"/>

              <extension module="org.wildfly.extension.ee-security"/>

              <extension module="org.wildfly.extension.elytron"/>

              <extension module="org.wildfly.extension.io"/>

              <extension module="org.wildfly.extension.microprofile.config-smallrye"/>

              <extension module="org.wildfly.extension.microprofile.health-smallrye"/>

              <extension module="org.wildfly.extension.microprofile.metrics-smallrye"/>

              <extension module="org.wildfly.extension.microprofile.opentracing-smallrye"/>

              <extension module="org.wildfly.extension.request-controller"/>

              <extension module="org.wildfly.extension.security.manager"/>

              <extension module="org.wildfly.extension.undertow"/>

          </extensions>

          <management>

              <security-realms>

                  <security-realm name="ManagementRealm">

                      <authentication>

                          <local default-user="$local" skip-group-loading="true"/>

                          <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>

                      </authentication>

                      <authorization map-groups-to-roles="false">

                          <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>

                      </authorization>

                  </security-realm>

                  <security-realm name="ApplicationRealm">

                      <server-identities>

                          <ssl>

                              <keystore path="application.keystore" relative-to="jboss.server.config.dir" keystore-password="password" alias="server" key-password="password" generate-self-signed-certificate-host="localhost"/>

                          </ssl>

                      </server-identities>

                      <authentication>

                          <local default-user="$local" allowed-users="*" skip-group-loading="true"/>

                          <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>

                      </authentication>

                      <authorization>

                          <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>

                      </authorization>

                  </security-realm>

              </security-realms>

              <audit-log>

                  <formatters>

                      <json-formatter name="json-formatter"/>

                  </formatters>

                  <handlers>

                      <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/>

                  </handlers>

                  <logger log-boot="true" log-read-only="false" enabled="false">

                      <handlers>

                          <handler name="file"/>

                      </handlers>

                  </logger>

              </audit-log>

              <management-interfaces>

                  <http-interface security-realm="ManagementRealm">

                      <http-upgrade enabled="true"/>

                      <socket-binding http="management-http"/>

                  </http-interface>

              </management-interfaces>

              <access-control provider="simple">

                  <role-mapping>

                      <role name="SuperUser">

                          <include>

                              <user name="$local"/>

                          </include>

                      </role>

                  </role-mapping>

              </access-control>

          </management>

          <profile>

              <subsystem xmlns="urn:jboss:domain:logging:6.0">

                  <console-handler name="CONSOLE">

                      <level name="INFO"/>

                      <formatter>

                          <named-formatter name="COLOR-PATTERN"/>

                      </formatter>

                  </console-handler>

                  <periodic-rotating-file-handler name="FILE" autoflush="true">

                      <formatter>

                          <named-formatter name="PATTERN"/>

                      </formatter>

                      <file relative-to="jboss.server.log.dir" path="server.log"/>

                      <suffix value=".yyyy-MM-dd"/>

                      <append value="true"/>

                  </periodic-rotating-file-handler>

                  <logger category="com.arjuna">

                      <level name="WARN"/>

                  </logger>

                  <logger category="io.jaegertracing.Configuration">

                      <level name="WARN"/>

                  </logger>

                  <logger category="org.jboss.as.config">

                      <level name="DEBUG"/>

                  </logger>

                  <logger category="sun.rmi">

                      <level name="WARN"/>

                  </logger>

                  <root-logger>

                      <level name="INFO"/>

                      <handlers>

                          <handler name="CONSOLE"/>

                          <handler name="FILE"/>

                      </handlers>

                  </root-logger>

                  <formatter name="PATTERN">

                      <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>

                  </formatter>

                  <formatter name="COLOR-PATTERN">

                      <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>

                  </formatter>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:batch-jberet:2.0">

                  <default-job-repository name="in-memory"/>

                  <default-thread-pool name="batch"/>

                  <job-repository name="in-memory">

                      <in-memory/>

                  </job-repository>

                  <thread-pool name="batch">

                      <max-threads count="10"/>

                      <keepalive-time time="30" unit="seconds"/>

                  </thread-pool>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/>

              <subsystem xmlns="urn:jboss:domain:core-management:1.0"/>

              <subsystem xmlns="urn:jboss:domain:datasources:5.0">

                  <datasources>

                      <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">

                          <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>

                          <driver>h2</driver>

                          <security>

                              <user-name>sa</user-name>

                              <password>sa</password>

                          </security>

                      </datasource>

                      <datasource jndi-name="java:/OracleDS" pool-name="OracleDS" enabled="true" use-java-context="true">

                          <connection-url>jdbc:oracle:thin:@localhost:1521:XE</connection-url>

                          <driver>OracleDS</driver>

                          <security>

                              <user-name>akashr</user-name>

                              <password>password</password>

                          </security>

                      </datasource>

                      <drivers>

                          <driver name="h2" module="com.h2database.h2">

                              <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>

                          </driver>

                          <driver name="OracleDS" module="com.oracle">

                              <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>

                          </driver>

                      </drivers>

                  </datasources>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">

                  <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:discovery:1.0"/>

              <subsystem xmlns="urn:jboss:domain:ee:4.0">

                  <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>

                  <concurrent>

                      <context-services>

                          <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/>

                      </context-services>

                      <managed-thread-factories>

                          <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/>

                      </managed-thread-factories>

                      <managed-executor-services>

                          <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" keepalive-time="5000"/>

                      </managed-executor-services>

                      <managed-scheduled-executor-services>

                          <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" keepalive-time="3000"/>

                      </managed-scheduled-executor-services>

                  </concurrent>

                  <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:ee-security:1.0"/>

              <subsystem xmlns="urn:jboss:domain:ejb3:5.0">

                  <session-bean>

                      <stateless>

                          <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>

                      </stateless>

                      <stateful default-access-timeout="5000" cache-ref="simple" passivation-disabled-cache-ref="simple"/>

                      <singleton default-access-timeout="5000"/>

                  </session-bean>

                  <pools>

                      <bean-instance-pools>

                          <strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                          <strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                      </bean-instance-pools>

                  </pools>

                  <caches>

                      <cache name="simple"/>

                      <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/>

                  </caches>

                  <passivation-stores>

                      <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/>

                  </passivation-stores>

                  <async thread-pool-name="default"/>

                  <timer-service thread-pool-name="default" default-data-store="default-file-store">

                      <data-stores>

                          <file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/>

                      </data-stores>

                  </timer-service>

                  <remote connector-ref="http-remoting-connector" thread-pool-name="default">

                      <channel-creation-options>

                          <option name="READ_TIMEOUT" value="${prop.remoting-connector.read.timeout:20}" type="xnio"/>

                          <option name="MAX_OUTBOUND_MESSAGES" value="1234" type="remoting"/>

                      </channel-creation-options>

                  </remote>

                  <application-security-domains>

                      <application-security-domain name="database-ejb-security-domain" security-domain="ApplicationDomain"/>

                  </application-security-domains>

                  <thread-pools>

                      <thread-pool name="default">

                          <max-threads count="10"/>

                          <keepalive-time time="100" unit="milliseconds"/>

                      </thread-pool>

                  </thread-pools>

                  <default-security-domain value="other"/>

                  <default-missing-method-permissions-deny-access value="true"/>

                  <log-system-exceptions value="true"/>

              </subsystem>

              <subsystem xmlns="urn:wildfly:elytron:5.0" final-providers="combined-providers" disallowed-providers="OracleUcrypto">

                  <providers>

                      <aggregate-providers name="combined-providers">

                          <providers name="elytron"/>

                          <providers name="openssl"/>

                      </aggregate-providers>

                      <provider-loader name="elytron" module="org.wildfly.security.elytron"/>

                      <provider-loader name="openssl" module="org.wildfly.openssl"/>

                  </providers>

                  <audit-logging>

                      <file-audit-log name="local-audit" path="audit.log" relative-to="jboss.server.log.dir" format="JSON"/>

                  </audit-logging>

                  <security-domains>

                      <security-domain name="ApplicationDomain" default-realm="ApplicationRealm" permission-mapper="default-permission-mapper">

                          <realm name="DatabaseRealm" role-decoder="groups-to-roles"/>

                          <realm name="ApplicationRealm" role-decoder="groups-to-roles"/>

                          <realm name="local"/>

                      </security-domain>

                      <security-domain name="ManagementDomain" default-realm="ManagementRealm" permission-mapper="default-permission-mapper">

                          <realm name="ManagementRealm" role-decoder="groups-to-roles"/>

                          <realm name="local" role-mapper="super-user-mapper"/>

                      </security-domain>

                  </security-domains>

                  <security-realms>

                      <identity-realm name="local" identity="$local"/>

                      <properties-realm name="ApplicationRealm">

                          <users-properties path="application-users.properties" relative-to="jboss.server.config.dir" digest-realm-name="ApplicationRealm"/>

                          <groups-properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>

                      </properties-realm>

                      <properties-realm name="ManagementRealm">

                          <users-properties path="mgmt-users.properties" relative-to="jboss.server.config.dir" digest-realm-name="ManagementRealm"/>

                          <groups-properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>

                      </properties-realm>

                      <jdbc-realm name="DatabaseRealm">

                          <principal-query data-source="OracleDS" sql="SELECT password, role from sa_user where username=?">

                              <attribute-mapping>

                                  <attribute to="groups" index="2"/>

                              </attribute-mapping>

                              <clear-password-mapper password-index="1"/>

                          </principal-query>

                      </jdbc-realm>

                  </security-realms>

                  <mappers>

                      <simple-permission-mapper name="default-permission-mapper" mapping-mode="first">

                          <permission-mapping>

                              <principal name="anonymous"/>

                              <permission-set name="default-permissions"/>

                          </permission-mapping>

                          <permission-mapping match-all="true">

                              <permission-set name="login-permission"/>

                              <permission-set name="default-permissions"/>

                          </permission-mapping>

                      </simple-permission-mapper>

                      <constant-realm-mapper name="local" realm-name="local"/>

                      <simple-role-decoder name="groups-to-roles" attribute="groups"/>

                      <constant-role-mapper name="super-user-mapper">

                          <role name="SuperUser"/>

                      </constant-role-mapper>

                  </mappers>

                  <permission-sets>

                      <permission-set name="login-permission">

                          <permission class-name="org.wildfly.security.auth.permission.LoginPermission"/>

                      </permission-set>

                      <permission-set name="default-permissions">

                          <permission class-name="org.wildfly.extension.batch.jberet.deployment.BatchPermission" module="org.wildfly.extension.batch.jberet" target-name="*"/>

                          <permission class-name="org.wildfly.transaction.client.RemoteTransactionPermission" module="org.wildfly.transaction.client"/>

                          <permission class-name="org.jboss.ejb.client.RemoteEJBPermission" module="org.jboss.ejb-client"/>

                      </permission-set>

                  </permission-sets>

                  <http>

                      <http-authentication-factory name="management-http-authentication" security-domain="ManagementDomain" http-server-mechanism-factory="global">

                          <mechanism-configuration>

                              <mechanism mechanism-name="DIGEST">

                                  <mechanism-realm realm-name="ManagementRealm"/>

                              </mechanism>

                          </mechanism-configuration>

                      </http-authentication-factory>

                      <provider-http-server-mechanism-factory name="global"/>

                  </http>

                  <sasl>

                      <sasl-authentication-factory name="application-sasl-authentication" sasl-server-factory="configured" security-domain="ApplicationDomain">

                          <mechanism-configuration>

                              <mechanism mechanism-name="JBOSS-LOCAL-USER" realm-mapper="local"/>

                              <mechanism mechanism-name="DIGEST-MD5">

                                  <mechanism-realm realm-name="ApplicationRealm"/>

                              </mechanism>

                              <mechanism mechanism-name="BASIC">

                                  <mechanism-realm realm-name="DatabaseRealm"/>

                              </mechanism>

                          </mechanism-configuration>

                      </sasl-authentication-factory>

                      <sasl-authentication-factory name="management-sasl-authentication" sasl-server-factory="configured" security-domain="ManagementDomain">

                          <mechanism-configuration>

                              <mechanism mechanism-name="JBOSS-LOCAL-USER" realm-mapper="local"/>

                              <mechanism mechanism-name="DIGEST-MD5">

                                  <mechanism-realm realm-name="ManagementRealm"/>

                              </mechanism>

                          </mechanism-configuration>

                      </sasl-authentication-factory>

                      <configurable-sasl-server-factory name="configured" sasl-server-factory="elytron">

                          <properties>

                              <property name="wildfly.sasl.local-user.default-user" value="$local"/>

                          </properties>

                      </configurable-sasl-server-factory>

                      <mechanism-provider-filtering-sasl-server-factory name="elytron" sasl-server-factory="global">

                          <filters>

                              <filter provider-name="WildFlyElytron"/>

                          </filters>

                      </mechanism-provider-filtering-sasl-server-factory>

                      <provider-sasl-server-factory name="global"/>

                  </sasl>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:infinispan:7.0">

                  <cache-container name="server" default-cache="default" module="org.wildfly.clustering.server">

                      <local-cache name="default">

                          <transaction mode="BATCH"/>

                      </local-cache>

                  </cache-container>

                  <cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan">

                      <local-cache name="passivation">

                          <locking isolation="REPEATABLE_READ"/>

                          <transaction mode="BATCH"/>

                          <file-store passivation="true" purge="false"/>

                      </local-cache>

                  </cache-container>

                  <cache-container name="ejb" aliases="sfsb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan">

                      <local-cache name="passivation">

                          <locking isolation="REPEATABLE_READ"/>

                          <transaction mode="BATCH"/>

                          <file-store passivation="true" purge="false"/>

                      </local-cache>

                  </cache-container>

                  <cache-container name="hibernate" module="org.infinispan.hibernate-cache">

                      <local-cache name="entity">

                          <transaction mode="NON_XA"/>

                          <object-memory size="10000"/>

                          <expiration max-idle="100000"/>

                      </local-cache>

                      <local-cache name="local-query">

                          <object-memory size="10000"/>

                          <expiration max-idle="100000"/>

                      </local-cache>

                      <local-cache name="timestamps"/>

                  </cache-container>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:io:3.0">

                  <worker name="default"/>

                  <buffer-pool name="default"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>

              <subsystem xmlns="urn:jboss:domain:jca:5.0">

                  <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>

                  <bean-validation enabled="true"/>

                  <default-workmanager>

                      <short-running-threads>

                          <core-threads count="50"/>

                          <queue-length count="50"/>

                          <max-threads count="50"/>

                          <keepalive-time time="10" unit="seconds"/>

                      </short-running-threads>

                      <long-running-threads>

                          <core-threads count="50"/>

                          <queue-length count="50"/>

                          <max-threads count="50"/>

                          <keepalive-time time="10" unit="seconds"/>

                      </long-running-threads>

                  </default-workmanager>

                  <cached-connection-manager/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:jdr:1.0"/>

              <subsystem xmlns="urn:jboss:domain:jmx:1.3">

                  <expose-resolved-model/>

                  <expose-expression-model/>

                  <remoting-connector/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:jpa:1.1">

                  <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:jsf:1.1"/>

              <subsystem xmlns="urn:jboss:domain:mail:3.0">

                  <mail-session name="default" jndi-name="java:jboss/mail/Default">

                      <smtp-server outbound-socket-binding-ref="mail-smtp"/>

                  </mail-session>

              </subsystem>

              <subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"/>

              <subsystem xmlns="urn:wildfly:microprofile-health-smallrye:1.0" security-enabled="false"/>

              <subsystem xmlns="urn:wildfly:microprofile-metrics-smallrye:1.0" security-enabled="false" exposed-subsystems="*"/>

              <subsystem xmlns="urn:wildfly:microprofile-opentracing-smallrye:1.0"/>

              <subsystem xmlns="urn:jboss:domain:naming:2.0">

                  <remote-naming/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:pojo:1.0"/>

              <subsystem xmlns="urn:jboss:domain:remoting:4.0">

                  <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm" sasl-authentication-factory="application-sasl-authentication"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>

              <subsystem xmlns="urn:jboss:domain:resource-adapters:5.0"/>

              <subsystem xmlns="urn:jboss:domain:sar:1.0"/>

              <subsystem xmlns="urn:jboss:domain:security:2.0">

                  <security-domains>

                      <security-domain name="other" cache-type="default">

                          <authentication>

                              <login-module code="Remoting" flag="optional">

                                  <module-option name="password-stacking" value="useFirstPass"/>

                              </login-module>

                              <login-module code="RealmDirect" flag="required">

                                  <module-option name="password-stacking" value="useFirstPass"/>

                              </login-module>

                          </authentication>

                      </security-domain>

                      <security-domain name="jboss-web-policy" cache-type="default">

                          <authorization>

                              <policy-module code="Delegating" flag="required"/>

                          </authorization>

                      </security-domain>

                      <security-domain name="jaspitest" cache-type="default">

                          <authentication-jaspi>

                              <login-module-stack name="dummy">

                                  <login-module code="Dummy" flag="optional"/>

                              </login-module-stack>

                              <auth-module code="Dummy"/>

                          </authentication-jaspi>

                      </security-domain>

                      <security-domain name="jboss-ejb-policy" cache-type="default">

                          <authorization>

                              <policy-module code="Delegating" flag="required"/>

                          </authorization>

                      </security-domain>

                  </security-domains>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:security-manager:1.0">

                  <deployment-permissions>

                      <maximum-set>

                          <permission class="java.security.AllPermission"/>

                      </maximum-set>

                  </deployment-permissions>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:transactions:5.0">

                  <core-environment node-identifier="${jboss.tx.node.id:1}">

                      <process-id>

                          <uuid/>

                      </process-id>

                  </core-environment>

                  <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>

                  <object-store path="tx-object-store" relative-to="jboss.server.data.dir"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:undertow:8.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other">

                  <buffer-cache name="default"/>

                  <server name="default-server">

                      <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>

                      <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>

                      <host name="default-host" alias="localhost">

                          <location name="/" handler="welcome-content"/>

                          <http-invoker security-realm="ApplicationRealm"/>

                      </host>

                  </server>

                  <servlet-container name="default">

                      <jsp-config/>

                      <websockets/>

                  </servlet-container>

                  <handlers>

                      <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>

                  </handlers>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:webservices:2.0">

                  <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>

                  <endpoint-config name="Standard-Endpoint-Config"/>

                  <endpoint-config name="Recording-Endpoint-Config">

                      <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">

                          <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>

                      </pre-handler-chain>

                  </endpoint-config>

                  <client-config name="Standard-Client-Config"/>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:weld:4.0"/>

          </profile>

          <interfaces>

              <interface name="management">

                  <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>

              </interface>

              <interface name="public">

                  <inet-address value="${jboss.bind.address:127.0.0.1}"/>

              </interface>

          </interfaces>

          <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">

              <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>

              <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>

              <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>

              <socket-binding name="http" port="${jboss.http.port:8080}"/>

              <socket-binding name="https" port="${jboss.https.port:8443}"/>

              <socket-binding name="txn-recovery-environment" port="4712"/>

              <socket-binding name="txn-status-manager" port="4713"/>

              <outbound-socket-binding name="mail-smtp">

                  <remote-destination host="localhost" port="25"/>

              </outbound-socket-binding>

          </socket-binding-group>

      </server>

       

      wildfly-config.xml is same as in case 1

       

      RemoteClient.java

      public class RemoteClient {

       

         public static void main(String[] args) throws Exception {

       

         final Hashtable<String, String> jndiProperties = new Hashtable<>();
         //jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
         jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, "org.wildfly.naming.client.WildFlyInitialContextFactory");
         jndiProperties.put(Context.PROVIDER_URL, "remote+http://localhost:8080");
        final Context context = new InitialContext(jndiProperties);

         SecuredEJBRemote reference = (SecuredEJBRemote) context.lookup("ejb:/ejb-security/SecuredEJB!"
         + SecuredEJBRemote.class.getName());

         System.out.println("\n\n\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n");
         System.out.println("Successfully called secured bean, caller principal " + reference.getSecurityInfo());
        boolean hasAdminPermission = false;
        try {

        hasAdminPermission = reference.administrativeMethod();
         } catch (EJBAccessException e) {

        }

        System.out.println("\nPrincipal has admin permission: " + hasAdminPermission);
         System.out.println("\n\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n\n");
         }

       

      }

      The jar deploys successfully.

      13:48:07,923 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027: Starting deployment of "ejb-security.jar" (runtime-name: "ejb-security.jar")

      13:48:08,343 INFO  [org.jboss.weld.deployer] (MSC service thread 1-2) WFLYWELD0003: Processing weld deployment ejb-security.jar

      13:48:08,570 INFO  [org.hibernate.validator.internal.util.Version] (MSC service thread 1-2) HV000001: Hibernate Validator 6.0.14.Final

      13:48:08,810 INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-2) WFLYEJB0473: JNDI bindings for session bean named 'SecuredEJB' in deployment unit 'deployment "ejb-security.jar"' are as follows:

       

       

      java:global/ejb-security/SecuredEJB!org.jboss.as.quickstarts.ejb_security.SecuredEJBRemote

      java:app/ejb-security/SecuredEJB!org.jboss.as.quickstarts.ejb_security.SecuredEJBRemote

      java:module/SecuredEJB!org.jboss.as.quickstarts.ejb_security.SecuredEJBRemote

      java:jboss/exported/ejb-security/SecuredEJB!org.jboss.as.quickstarts.ejb_security.SecuredEJBRemote

      ejb:ejb-security/SecuredEJB!org.jboss.as.quickstarts.ejb_security.SecuredEJBRemote

      java:global/ejb-security/SecuredEJB

      java:app/ejb-security/SecuredEJB

      java:module/SecuredEJB

       

       

      13:48:09,084 INFO  [org.jboss.weld.Version] (MSC service thread 1-2) WELD-000900: 3.0.5 (Final)

      13:48:09,335 INFO  [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-5) ISPN000128: Infinispan version: Infinispan 'Infinity Minus ONE +2' 9.4.3.Final

      13:48:09,830 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 74) WFLYCLINF0002: Started client-mappings cache from ejb container

      13:48:10,066 INFO  [io.smallrye.metrics] (MSC service thread 1-5) MicroProfile: Metrics activated

      13:48:10,803 INFO  [org.jboss.as.server] (External Management Request Threads -- 1) WFLYSRV0010: Deployed "ejb-security.jar" (runtime-name : "ejb-security.jar")

      But when I do "mvn exec:exec"

      [INFO] Scanning for projects...

      [INFO]

      [INFO] ----------------< org.wildfly.quickstarts:ejb-security >----------------

      [INFO] Building Quickstart: ejb-security 17.0.0.Beta1-SNAPSHOT

      [INFO] --------------------------------[ jar ]---------------------------------

      [INFO]

      [INFO] --- exec-maven-plugin:1.6.0:exec (default-cli) @ ejb-security ---

      Apr 30, 2019 7:20:24 PM org.wildfly.naming.client.Version <clinit>

      INFO: WildFly Naming version 1.0.9.Final

      Apr 30, 2019 7:20:24 PM org.wildfly.security.Version <clinit>

      INFO: ELY00001: WildFly Elytron version 1.8.0.Final

      Apr 30, 2019 7:20:24 PM org.xnio.Xnio <clinit>

      INFO: XNIO version 3.7.1.Final

      Apr 30, 2019 7:20:24 PM org.xnio.nio.NioXnio <clinit>

      INFO: XNIO NIO Implementation Version 3.7.1.Final

      Apr 30, 2019 7:20:24 PM org.jboss.threads.Version <clinit>

      INFO: JBoss Threads version 2.3.3.Final

      Apr 30, 2019 7:20:24 PM org.jboss.remoting3.EndpointImpl <clinit>

      INFO: JBoss Remoting version 5.0.8.Final

      Apr 30, 2019 7:20:25 PM org.jboss.ejb.client.EJBClient <clinit>

      INFO: JBoss EJB Client version 4.0.16.Final

       

       

       

       

       

       

      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

       

       

       

       

      Exception in thread "main" org.jboss.ejb.client.RequestSendFailedException: EJBCLIENT000409: No more destinations are available

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:592)

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)

              at org.jboss.ejb.protocol.remote.RemotingEJBClientInterceptor.handleInvocationResult(RemotingEJBClientInterceptor.java:56)

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:594)

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)

              at org.jboss.ejb.client.TransactionPostDiscoveryInterceptor.handleInvocationResult(TransactionPostDiscoveryInterceptor.java:133)

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:594)

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)

              at org.jboss.ejb.client.DiscoveryEJBClientInterceptor.handleInvocationResult(DiscoveryEJBClientInterceptor.java:115)

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:594)

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)

              at org.jboss.ejb.client.NamingEJBClientInterceptor.handleInvocationResult(NamingEJBClientInterceptor.java:79)

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:594)

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)

              at org.jboss.ejb.client.TransactionInterceptor.handleInvocationResult(TransactionInterceptor.java:172)

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:594)

              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:528)

              at org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:938)

              at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:177)

              at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:112)

              at com.sun.proxy.$Proxy2.getSecurityInfo(Unknown Source)

              at org.jboss.as.quickstarts.ejb_security.RemoteClient.main(RemoteClient.java:45)

              Suppressed: org.jboss.ejb.client.RequestSendFailedException

                      at org.jboss.ejb.protocol.remote.RemoteEJBReceiver$1.handleFailed(RemoteEJBReceiver.java:101)

                      at org.jboss.ejb.protocol.remote.RemoteEJBReceiver$1.handleFailed(RemoteEJBReceiver.java:74)

                      at org.xnio.IoFuture$HandlingNotifier.notify(IoFuture.java:215)

                      at org.xnio.AbstractIoFuture$NotifierRunnable.run(AbstractIoFuture.java:720)

                      at org.jboss.remoting3.EndpointImpl$TrackingExecutor.lambda$execute$0(EndpointImpl.java:949)

                      at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)

                      at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)

                      at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)

                      at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)

                      at java.lang.Thread.run(Thread.java:748)

              Caused by: javax.security.sasl.SaslException: Authentication failed: none of the mechanisms presented by the server (JBOSS-LOCAL-USER, DIGEST-MD5) are supported

                      at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:444)

                      at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:242)

                      at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)

                      at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)

                      at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89)

                      at org.xnio.nio.WorkerThread.run(WorkerThread.java:591)

                      at ...asynchronous invocation...(Unknown Source)

                      at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:571)

                      at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:537)

                      at org.jboss.remoting3.ConnectionInfo$None.getConnection(ConnectionInfo.java:82)

                      at org.jboss.remoting3.ConnectionInfo.getConnection(ConnectionInfo.java:55)

                      at org.jboss.remoting3.EndpointImpl.doGetConnection(EndpointImpl.java:488)

                      at org.jboss.remoting3.EndpointImpl.getConnectedIdentity(EndpointImpl.java:434)

                      at org.jboss.remoting3.UncloseableEndpoint.getConnectedIdentity(UncloseableEndpoint.java:52)

                      at org.jboss.remoting3.Endpoint.getConnectedIdentity(Endpoint.java:123)

                      at org.jboss.ejb.protocol.remote.RemoteEJBReceiver.lambda$getConnection$2(RemoteEJBReceiver.java:185)

                      at java.security.AccessController.doPrivileged(Native Method)

                      at org.jboss.ejb.protocol.remote.RemoteEJBReceiver.getConnection(RemoteEJBReceiver.java:185)

                      at org.jboss.ejb.protocol.remote.RemoteEJBReceiver.processInvocation(RemoteEJBReceiver.java:128)

                      at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:479)

                      at org.jboss.ejb.protocol.remote.RemotingEJBClientInterceptor.handleInvocation(RemotingEJBClientInterceptor.java:51)

                      at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:491)

                      at org.jboss.ejb.client.TransactionPostDiscoveryInterceptor.handleInvocation(TransactionPostDiscoveryInterceptor.java:79)

                      at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:491)

                      at org.jboss.ejb.client.DiscoveryEJBClientInterceptor.handleInvocation(DiscoveryEJBClientInterceptor.java:92)

                      at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:491)

                      at org.jboss.ejb.client.NamingEJBClientInterceptor.handleInvocation(NamingEJBClientInterceptor.java:67)

                      at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:491)

                      at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:165)

                      at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:491)

                      at org.wildfly.common.context.Contextual.runExConsumer(Contextual.java:203)

                      at org.jboss.ejb.client.EJBClientInvocationContext.sendRequestInitial(EJBClientInvocationContext.java:327)

                      at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:173)

                      at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:112)

                      at com.sun.proxy.$Proxy2.getSecurityInfo(Unknown Source)

                      at org.jboss.as.quickstarts.ejb_security.RemoteClient.main(RemoteClient.java:45)

      [ERROR] Command execution failed.

      org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)

          at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:404)

          at org.apache.commons.exec.DefaultExecutor.execute (DefaultExecutor.java:166)

          at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:804)

          at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:751)

          at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:313)

          at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)

          at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)

          at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)

          at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)

          at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)

          at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)

          at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)

          at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)

          at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)

          at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)

          at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)

          at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)

          at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)

          at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)

          at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)

          at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)

          at java.lang.reflect.Method.invoke (Method.java:498)

          at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)

          at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)

          at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)

          at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)

      [INFO] ------------------------------------------------------------------------

      [INFO] BUILD FAILURE

      [INFO] ------------------------------------------------------------------------

      [INFO] Total time:  3.169 s

      [INFO] Finished at: 2019-04-30T19:20:26+05:30

      [INFO] ------------------------------------------------------------------------

      [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:exec (default-cli) on project ejb-security: Command execution failed.: Process exited with an error: 1 (Exit value: 1) -> [Help 1]

      [ERROR]

      [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

      [ERROR] Re-run Maven using the -X switch to enable full debug logging.

      [ERROR]

      [ERROR] For more information about the errors and possible solutions, please read the following articles:

      [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

       

      My mechanism is not even being presented.

       

      I have tried few different posts like "https://docs.jboss.org/author/display/WFLY/Using+the+Elytron+Subsystem#UsingtheElytronSubsystem-ConfigureAuthenticationwithaDatabaseIdentityStore" but couldn't get it working.

       

      Have also tried to use the presented DIGEST-MD5 mechanism by putting the hashed password in the database but with no luck.

       

      Please, any help is much appreciated.