У меня есть приложение Spring (версия Spring 2.5.6.SEC01 , версия Spring Security 2.0.5 ) со следующей настройкой (это основано на this вопрос ):
В файле security-config.xml у меня есть следующая конфигурация:
<http>
<!-- Restrict URLs based on role -->
<intercept-url pattern="/WEB-INF/jsp/login.jsp*" access="ROLE_ANONYMOUS" />
<intercept-url pattern="/WEB-INF/jsp/header.jsp*" access="ROLE_ANONYMOUS" />
<intercept-url pattern="/WEB-INF/jsp/footer.jsp*" access="ROLE_ANONYMOUS" />
<intercept-url pattern="/login*" access="ROLE_ANONYMOUS" />
<intercept-url pattern="/index.jsp" access="ROLE_ANONYMOUS" />
<intercept-url pattern="/logoutSuccess*" access="ROLE_ANONYMOUS" />
<intercept-url pattern="/css/**" filters="none" />
<intercept-url pattern="/images/**" filters="none" />
<intercept-url pattern="/**" access="ROLE_ANONYMOUS" />
<anonymous />
<form-login login-page="/login.jsp"/>
</http>
<beans:bean id="myUserDetailsService" class="com.example.login.MyUserDetailsService">
<beans:property name="dataSource" ref="dataSource" />
<custom-authentication-provider />
</beans:bean>
<authentication-provider user-service-ref="myUserDetailsService" />
Определен класс com.example.login.MyUserDetailsService :
public class MyUserDetailsService extends SimpleJdbcDaoSupport implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundException,
DataAccessException {
logger.info("MyUserDetailsService.loadUserByUsername: Entered method. Username [" + userName + "]");
...
}
}
Но я не вижу эту строку журнала. Как определить пользовательский UserDetailsService, чтобы я мог установить роли безопасности? Мне даже не нужен специальный сервис, но он есть в security-config.xml
<authentication-provider> <jdbc-user-service data-source-ref="dataSource" />
</authentication-provider>
не устанавливал роль, хотя у меня есть таблицы пользователей и прав доступа. Как установить роли безопасности Spring?