Я использовал правильно запущенный пример проекта ( документация ) для создания простой страницы входа в JSF, работающей с Spring Security на Tomcat 7 с использованием Eclipse. В приведенном выше примере имена пользователей, пароли и роли хранятся в файле applicationContext-security.xml в следующем формате:
<authentication-provider>
<password-encoder hash="md5" />
<user-service>
<user name="rod"
password="a564de63c2d0da68cf47586ee05984d7"
authorities="ROLE_SUPERVISOR, ROLE_USER, ROLE_TELLER" />
<user name="peter"
password="22b5c9accc6e1ba628cedc63a72d57f8"
authorities="ROLE_USER" />
</user-service>
</authentication-provider>
Я пытаюсь изменить его, чтобы я мог использовать базу данных аутентификации через JDBC. После простой модификации я больше не могу получить доступ к своему проекту на сервере (404) из-за ошибки (Eclipse не предоставляет подробностей, или, возможно, я не знаю, где искать). Не могли бы вы дать мне несколько советов о том, что может пойти не так? Спасибо.
Ниже приведена полная копия моего обновленного applicationContext-security.xml:
</p>
<pre><code> <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-2.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-2.0.1.xsd">
<global-method-security
secured-annotations="enabled">
</global-method-security>
<http
auto-config="true"
access-denied-page="/accessDenied.jsp">
<intercept-url
pattern="/faces/protected**"
access="ROLE_SUPERVISOR,ROLE_USER,ROLE_TELLER" />
<intercept-url
pattern="/**"
access="IS_AUTHENTICATED_ANONYMOUSLY" />
<form-login
login-processing-url="/j_spring_security_check"
login-page="/faces/login.jsf"
default-target-url="/"
authentication-failure-url="/faces/login.jsf" />
<logout
logout-url="/logout*"
logout-success-url="/" />
</http>
<authentication-provider>
<jdbc-user-service data-source-ref="dataSource"/>
</authentication-provider>
<beans:bean id="userDetailsService" class="org.springframework.security.userdetails.jdbc.JdbcDaoImpl">
<beans:property name="dataSource" ref="dataSource"/>
</beans:bean>
<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<beans:property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<beans:property name="url" value="jdbc:mysql:///mysampledb"/>
<beans:property name="username" value="root"/>
<beans:property name="password" value="root"/>
</beans:bean>
</beans:beans>