Есть, конечно, несколько способов достичь этого.
Мой предпочтительный вариант - сделать это на заказ UserDetailsService
. Единственный метод - loadUserByUsername
, который возвращает экземпляр UserDetails
. Когда вы создаете свой UserDetails
, вы можете добавить все, что захотите GrantedAuthority
.
Итак, сначала вы объявите свой пользовательский UserDetailsService
в файле конфигурации контекста приложения:
<bean id="myCustomUDS" class="com.myapp.AppUDS" />
<sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider user-service-ref="myCustomUDS">
</sec:authentication-provider>
</sec:authentication-manager>
Затем вы пишете сам класс:
public class AppUDS implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
//create your concrete UserDetails
//add your custom role (i.e. GrantedAuthority) to that object (that will be added to all users)
//return it
}
}