Вы можете использовать ваш UserDetailsService
вне контекста безопасности, так как это просто DAO. Вы можете просто вставить его в свой весенний контекст, как и любой другой боб.
Метод UserDetailsService#loadUserByUsername(String username)
должен возвращать роли для ваших пользователей, при условии, что он настроен правильно, вы можете использовать их, чтобы определить, как визуализировать ваши элементы управления.
Здесь - хорошее руководство по правильной реализации UserDetailsService
.
Вы можете использовать его в своем контексте безопасности, чтобы ваши фильтры знали о ролях:
<authentication-manager>
<authentication-provider user-service-ref="myDetailsService" />
</authentication-manager>
Вы также можете использовать его как обычный боб:
<bean id="myDetailsService"
class="com.company.service.impl.MyDetailsService" />
<bean id="myOtherService"
class="com.company.service.impl.OtherService" >
<property name="detailsService" ref="myDetailsService"/>
</bean>