我想知道在正确的身份验证和授权后是否可以从 Wildfly 级别进行额外的查询。正确登录数据库后,我需要向数据库(SQL)添加一条有关登录日期的信息记录。是否可以从 xml 级别执行此操作? (我使用的是wildfly 17,配置如下)
<authentication>
<login-module code="LdapExtended" flag="required">
<module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
<module-option name="java.naming.security.protocol" value="ssl"/>
<module-option name="password-stacking" value="useFirstPass"/>
<module-option name="java.naming.security.authentication" value="simple"/>
<module-option name="java.naming.provider.url" value="ldaps://xxx.xxx.xxx:636"/>
<module-option name="bindDN" value="cn=xxx,dc=xxx,dc=xxx"/>
<module-option name="bindCredential" value="xxx"/>
<module-option name="baseCtxDN" value="ou=xxx,dc=xxx,dc=xxx"/>
<module-option name="baseFilter" value="(uid={0})"/>
<module-option name="roleAttributeID" value="cn"/>
<module-option name="searchScope" value="SUBTREE_SCOPE"/>
<module-option name="allowEmptyPasswords" value="true"/>
<module-option name="defaultRole" value="xxx"/>
</login-module>
<login-module code="Database" flag="required">
<module-option name="password-stacking" value="useFirstPass"/>
<module-option name="dsJndiName" value="java:/xxxJNDI"/>
<module-option name="rolesQuery" value="query for roles)"/>
</login-module>
</authentication>
最佳答案
您无法在 PicketBox(JBoss/Wildfly 的旧安全模块)数据库登录模块中配置它。您必须编写自己的自定义 LoginModule(参见此处: http://www.mastertheboss.com/jboss-server/jboss-security/creating-a-custom-jboss-login-module )
也许这也是迁移到新安全模块 Elytron 的机会,该模块不再提供 LoginModules,但支持 jdbc-realm,您可以在其中直接查询数据库。 (参见此处https://docs.jboss.org/author/display/WFLY/Database+Authentication+Migration)
关于java - WIldfly - 身份验证成功后的sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58877889/