Пользовательский столбец пароля GlassFish 3 Realm

Я настроил свою пользовательскую область Glassfish со следующими свойствами:

Jaas:                jdbcRealm
JNDI:                jdbc/myDatasource
User Table:          usuario
user name column:    nombre
password-column:     password
group-table:         usuario
group-name column:   grupo

это ссылочная таблица в моей базе данных:

усуарио:

|               usuario                    |
____________________________________________
| nombre      | password      | grupo      |
--------------------------------------------
| SSS         |               | ADMIN      |
--------------------------------------------
| AAA         | AAA           | ADMIN      |
--------------------------------------------

МОЯ ПРОБЛЕМА В ЭТОМ:

Пользователь «SSS» входит в систему без проблем, так что сфера работает хорошо, с другой стороны, AAA не может пройти аутентификацию, пароль не совпадает.

Это моя форма входа:

<p:panel header="Login From">
        <form method="POST" action="j_security_check">
            Username: <input type="text" name="j_username" />
            Password: <input type="password" name="j_password" />
            <br />
            <input type="submit" value="Login" />
            <input type="reset" value="Reset" />
        </form> 
    </p:panel>

Еще одна вещь: пользователь «SSS» входит в систему, даже если я пишу что-нибудь для пароля для него в форме входа.

Пожалуйста, некоторая помощь была бы здоровой. Заранее спасибо.


person csueskun    schedule 08.11.2011    source источник


Ответы (1)


Знаете ли вы, что Glassfish JDBCRealms использует хеширование паролей? Таким образом, обычно вам придется хранить хешированные пароли в своей базе данных (Glassfish 3.1 JDBCRealm по умолчанию использует SHA-256, предыдущие версии используют MD-5, другие типы Realm могут иметь даже другие алгоритмы хеширования по умолчанию).

Случай, когда он работает для пустого пароля, может заключаться в том, что сервер обрабатывает пользователей с пустыми паролями как «анонимных», которые могут войти в систему без пароля или с любым паролем. Тогда ваша конфигурация будет представлять серьезную угрозу.

person Matt Handy    schedule 09.11.2011
comment
Вы были правы, я не хэшировал свои пароли в своей БД. Теперь он работает отлично. Большое спасибо, Мэтт. - person csueskun; 09.11.2011