У меня есть веб-приложение, использующее Spring Security для аутентификации. ЭТО БЫЛО РАБОЧЕГО ИЗМЕНЕНИЯ в Tomcat 6. Мне пришлось развернуть его на Tomcat 7 по мере изменения бизнес-требований и теперь не работает.Spring Security - плохие учетные данные при развертывании от Tomcat 6 до Tomcat 7
пружинно-security.xml (для простоты я изменил запрос)
<form-login login-page="/redirect"
login-processing-url="/submitLogin"
username-parameter="j_username"
password-parameter="j_password"
authentication-failure-handler-ref="loginFailureHandler"
authentication-success-handler-ref="loginSuccessHandler" />
<authentication-manager>
<authentication-provider>
<jdbc-user-service
data-source-ref="sybaseDataSource"
users-by-username-query="SELECT distinct EnterpriseID as username, 'password' as password, 1 as enabled FROM users where id = ?"
authorities-by-username-query="SELECT ? as id, 'ROLE_USER' as authority"
<!-- I know, it shouldnt be like this, just for the sake of the user having an authority -->
/>
</authentication-provider>
</authentication-manager>
форму из JSP: (Это на самом деле перенаправление, в котором пользователя и пароль заполняются и форма представлена с использованием JavaScript (JQuery)
<form method="POST" action="/submitLogin" id="login-form-sso">
<input type="text" name='j_username' value="${user}"/>
<input type="text" name='j_password' value="password"/>
</form>
$(document).ready(function(){
$("#login-form-sso").submit();
});
при развертывании в Tomcat 7, ВСЕГДА идут к loginFailureHandler
. После отладки, я замечаю, что имя пользователя не «видит» Спринг безопасности, пытаясь запросить с пользователем «»
Опять же, это отлично работает в Tomcat 6. Я также проверил форму JSP и содержали учетные данные, по какой-то причине, это выглядит как Spring безопасность не может найти его.
Может ли кто-нибудь указать мне направление вправо? Я ценю ваши материалы. Спасибо
ОБНОВЛЕНИЕ: Я думаю, что одним из фильтров в цепочке фильтров является преступник, потребляющий параметры из тела запроса. будет исследовать далее.
Какая версия Spring-security? У вас есть спящий режим? –
spring-security 3.2.2, плитки 2.2.2. нет спящего режима. – jmcg
У меня есть код XML, который будет ссылаться на файл Java, и там вы можете написать свой метод findByUsername (String email). Это может быть полезно для вас. Это будет полезно, если у вас есть спящий режим, так как для этого требуется объект User. Если ты этого хочешь, дайте мне знать. –