Java 无法通过JBoss AS 7安全子系统进行身份验证

Java 无法通过JBoss AS 7安全子系统进行身份验证,java,security,jboss,subsystem,container-managed,Java,Security,Jboss,Subsystem,Container Managed,我不明白如何使用密码的散列而不是打开密码。 当我从MS SQL数据库获得开放密码时,一切正常。 standalone.xml: <security-domain name="SD" cache-type="default"> <authentication> <login-module code="Database" flag="required"> <module-option name="dsJndiName" value="<jn

我不明白如何使用密码的散列而不是打开密码。 当我从MS SQL数据库获得开放密码时,一切正常。
standalone.xml:

<security-domain name="SD" cache-type="default">
 <authentication>
  <login-module code="Database" flag="required">
   <module-option name="dsJndiName" value="<jndi>"/>
   <module-option name="principalsQuery" value="select <open_pass> from <table> where <username> = ?"/>
   <module-option name="rolesQuery" value="select <role>, 'Roles' from <table> where <username> = ?"/>       
  </login-module>
 </authentication>
</security-domain>
但当我尝试使用以下内容时:

<security-domain name="SD" cache-type="default">
 <authentication>
  <login-module code="Database" flag="required">
   <module-option name="dsJndiName" value="<jndi>"/>
   <module-option name="principalsQuery" value="select <pass_hash> from <table> where <username> = ?"/>
   <module-option name="rolesQuery" value="select <role>, 'Roles' from <table> where <username> = ?"/>
   <module-option name="hashAlgorithm" value="SHA-1"/>
   <module-option name="hashEncoding" value="base64"/>       
  </login-module>
 </authentication>
</security-domain>

我获得
登录失败:javax.security.auth.Login.failedLogin异常:密码不正确/需要密码
,即使我输入了正确的密码
pass\u hash
字段具有
varbinary(64)
在数据库中键入。 我错过了什么?

请检查


您还在用户表中存储base64编码的密码。

我将SHA-1密码的哈希存储在varbinary(64)字段中并获取它。我尝试将密码哈希存储在varchar字段中,并在
hashEncoding
标记中键入
hex
,但它仍然不起作用。
<security-domain name="SD" cache-type="default">
 <authentication>
  <login-module code="Database" flag="required">
   <module-option name="dsJndiName" value="<jndi>"/>
   <module-option name="principalsQuery" value="select <pass_hash> from <table> where <username> = ?"/>
   <module-option name="rolesQuery" value="select <role>, 'Roles' from <table> where <username> = ?"/>
   <module-option name="hashAlgorithm" value="SHA-1"/>
   <module-option name="hashEncoding" value="base64"/>       
  </login-module>
 </authentication>
</security-domain>