Я создаю страницу регистрации с помощью Wildfly для своего приложения, которое требует, чтобы пользователи регистрировались с помощью смарт-карты. Я хотел бы иметь начальную целевую страницу, которая не требует никакой аутентификации, а затем, когда они обращаются к странице регистрации, она предложит им выбрать сертификат с их смарт-карты.Wildfly: Назначить роль по умолчанию пользователю с аутентификацией сертификата клиента
Я довольно близко к тому, чтобы иметь эту работу, как я ожидаю, но поразил стену, что, я уверен, связан с моим недостатком понимания Wildfly/JBOSS.
Я следующий домен безопасности определены в моем standalone.xml
<security-domain name="client_cert_domain" cache-type="default">
<authentication>
<login-module code="Certificate" flag="required">
<module-option name="verifier" value="org.jboss.security.auth.certs.AnyCertVerifier"/>
<module-option name="securityDomain" value="client_cert_domain"/>
</login-module>
</authentication>
<jsse keystore-password="secret" keystore-url="file:${jboss.server.config.dir}/Certificates/HQ/KeyStore" truststore-password="secret" truststore-url="file:${jboss.server.config.dir}/Certificates/HQ/cacerts.jks" client-auth="true"/>
</security-domain>
и мой web.xml является
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<security-constraint>
<web-resource-collection>
<web-resource-name>Registration page only</web-resource-name>
<url-pattern>/register/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>User</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Some Name For User To See</realm-name>
</login-config>
Наконец, мой JBoss-web.xml
<jboss-web>
<security-domain>client_cert_domain</security-domain>
</jboss-web>
Это d oes почти точно, что я хочу. На главной странице не требуется аутентификации и/register/требуется сертификат клиента. Единственная проблема заключается в том, что, поскольку это не зарегистрированный пользователь, у них нет назначенных им ролей, поэтому страница заблокирована, так как они не входят в роль «Пользователь», указанную в теге ограничения аутентификации.
Есть ли простой способ автоматически назначить роль по умолчанию любому пользователю, который выполняет аутентификацию с использованием клиентских сертификатов, без необходимости их предварительного определения в файле role.properties?