Spring Security иногда требует повторного ввода паролей для входа в систему - PullRequest
2 голосов
/ 11 августа 2011

Я использую функцию безопасности Spring 3.0.5 для непосредственного выполнения аутентификации пользователя. Я использую базовую аутентификацию. Каждое утро, когда я пытаюсь войти в систему в первый раз, мне нужно ввести правильные пароли точно три раза, чтобы войти в систему. Я уверен, что были введены правильные пароли. После этого проблема не возникает, даже если я пытаюсь войти в систему с другого аккаунта.

Для получения дополнительной информации мой сервер приложений использует порт 8443, и я установил перенаправление портов с 443 на 8443, используя iptables на хосте Linux. Не уверен, если это имеет какое-либо влияние

Я использую базу данных в качестве бэкэнда для аутентификации. И есть только одна БД без кластеризации.

Ниже приведен мой файл конфигурации.

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">


<global-method-security pre-post-annotations="enabled" />

<http pattern="/loggedout.jsp" security="none"/>

<http use-expressions="true">
    <intercept-url pattern="/page/**" access="isAuthenticated()" />

    <http-basic/>
    <remember-me />
</http>

<authentication-manager>
    <authentication-provider>
        <password-encoder hash="sha"/>
        <jdbc-user-service data-source-ref="dataSource"/>
    </authentication-provider>
</authentication-manager>

</beans:beans>

Кто-нибудь сталкивался с такой же проблемой раньше или имеет какое-то представление об этом?

Заранее спасибо.

1 Ответ

2 голосов
/ 12 августа 2011

Часть вашего комментария "это происходит каждое утро, когда я пытаюсь войти в систему впервые", очень актуальна. Могу поспорить, что вы имеете дело с устаревшим соединением в пуле соединений.

Существует способ настроить пулы соединений на использование тестового запроса, чтобы проверить, хорошо ли соединение, прежде чем пытаться его использовать. Например, если вы используете DBCP, я считаю, что это свойство называется validationQuery. Я не знаю все тонкости того, что происходит с вашим конкретным пулом и конфигурацией, но я уже видел это (это = раннее утреннее поведение, которое исправляется) раньше, и это происходит с устаревшими соединениями.

Удачи. : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...