How to configure JBoss DatabaseServerLoginModule for Digest Authentication in a Web Application

前端 未结 4 2103
广开言路
广开言路 2020-12-19 13:59

In a sentence, I want to configure JBoss 4.2.2 to use DatabaseServerLoginModule as the login-module for a Web application that is secured via Digest Authentication. The pro

相关标签:
4条回答
  • 2020-12-19 14:40

    In all examples I saw the role query looks a little different and always returns two columns:

    select userRoles,'Roles' from UserRoles where username=? 
    

    Your query returns only one column.

    I made test in my application and after removing these one extra column authentication stop working.

    0 讨论(0)
  • 2020-12-19 14:40

    something like this be possible?

    SELECT PASSWORD FROM SR_USER WHERE USERNAME=? AND IDCOMPANIA=?
    
    SELECT r.ROLE_NAME, 'Roles'
    FROM
      SR_ROLE r, SR_USER_ROLE ur, SR_USER u
    WHERE
      u.USERNAME=? AND u.ID=ur.FK_USER_ID AND ur.FK_ROLE_ID=r.ID AND u.IDCOMPANIA?
    
    0 讨论(0)
  • 2020-12-19 14:41

    Can you do something like this?

    <application-policy name="secrest">
    <authentication>
        <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
            <module-option name="dsJndiName">java:/SecRestDS</module-option>
            <module-option name="principalsQuery">
                SELECT PASSWORD FROM SR_USER WHERE USERNAME=? AND IDCOMPANIA=? 
            </module-option>
            <module-option name="rolesQuery">
                SELECT r.ROLE_NAME, 'Roles' FROM SR_ROLE r, SR_USER_ROLE ur, SR_USER u WHERE
                u.USERNAME=? AND  u.IDCOMPANIA=? AND u.ID=ur.FK_USER_ID AND ur.FK_ROLE_ID=r.ID
            </module-option>    
            <module-option name="hashAlgorithm">MD5</module-option>
            <module-option name="hashEncoding">rfc2617</module-option>
            <module-option name="ignorePasswordCase">false</module-option>
            <module-option name="hashStorePassword">true</module-option>
            <module-option name="hashUserPassword">false</module-option>
            <module-option name="storeDigestCallback">org.jboss.security.auth.spi.RFC2617Digest</module-option>
        </login-module>
    </authentication>
    
    0 讨论(0)
  • 2020-12-19 14:48

    So I finally figured this one out. The key was the following:

    <application-policy name="secrest">
    <authentication>
        <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
            <module-option name="dsJndiName">java:/SecRestDS</module-option>
            <module-option name="principalsQuery">
                SELECT PASSWORD FROM SR_USER WHERE USERNAME=?
            </module-option>
            <module-option name="rolesQuery">
                SELECT r.ROLE_NAME, 'Roles' FROM SR_ROLE r, SR_USER_ROLE ur, SR_USER u WHERE
                u.USERNAME=? AND u.ID=ur.FK_USER_ID AND ur.FK_ROLE_ID=r.ID
            </module-option>    
            <module-option name="hashAlgorithm">MD5</module-option>
            <module-option name="hashEncoding">rfc2617</module-option>
            <module-option name="ignorePasswordCase">false</module-option>
            <module-option name="hashStorePassword">true</module-option>
            <module-option name="hashUserPassword">false</module-option>
            <module-option name="storeDigestCallback">org.jboss.security.auth.spi.RFC2617Digest</module-option>
        </login-module>
    </authentication>
    

    0 讨论(0)
提交回复
热议问题