Как аутентифицировать пользователя с помощью области jdbc в Elytron Wildfly 17?

Я работал над Wildfly 17 Elytron. Я настроил его с помощью этих jboss-cli со следующими командами.

/subsystem=elytron/jdbc-realm=test-realm:add(principal-query=[{sql="SELECT hash FROM invientusers WHERE emailid = ?", data-source="dataSourcePoolName", clear-password-mapper={password-index=1}},{sql="SELECT Roles FROM Roles WHERE emailid = ?", data-source="dataSourcePoolName", attribute-mapping=[{index=1, to=roles}]}])

/subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=roles)

/subsystem=elytron/security-domain=test-security-sd:add(default-realm=test-realm, realms=[{realm=test-realm, role-decoder=from-roles-attribute}], permission-mapper=default-permission-mapper)

/subsystem=elytron/http-authentication-factory=test-security-http-auth:add(http-server-mechanism-factory=global,security-domain=test-security-sd,mechanism-configurations=[{mechanism-name=BASIC,mechanism-realm-configurations=[{realm-name=test-realm}]}])

 /subsystem=undertow/application-security-domain=test-security-sd:add(http-authentication-factory=test-security-http-auth)

/subsystem=elytron/sasl-authentication-factory=test-sasl-authentication:add(sasl-server-factory=configured,security-domain=test-security-sd,mechanism-configurations=[{mechanism-name=PLAIN}])

/subsystem=remoting/http-connector=http-remoting-connector:write-attribute(name=sasl-authentication-factory,value=test-sasl-authentication)

/subsystem=ejb3/application-security-domain=test-domain:add(security-domain=test-security-sd)

Код EJB

@SecurityDomain("test-domain")
public class SecuredEJB {

web.xml

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>test-sasl-authentication</realm-name>
</login-config>

Я ожидаю, что этот код будет проверяться с помощью тестовой области JDBC. но он использует область по умолчанию на основе файлов для проверок ejb.


person Deepak    schedule 17.09.2020    source источник


Ответы (1)


Вам также необходимо добавить отображение домена в подсистему EJB3:

/subsystem=ejb3/application-security-domain=other:add(security-domain=test-security-sd)

Взгляните на этот пример того, как для защиты EJB с помощью области файловой системы. Сценарий configure-elytron.cli содержит все операции управления, которые могут потребоваться для настройки вашего сервера. Большинство шагов должны быть применимы к вашему сценарию, за исключением того, что вместо этого вы настраиваете область JDBC.

person Sonia    schedule 10.12.2020