Лучший вариант - использовать пользовательский фильтр предварительной аутентификации, расширяя AbstractPreAuthenticatedProcessingFilter.
Вы можете получить токен из запроса и вернуть его в метод getPreAuthenticatedCredentials ().
Вы можете определить свой собственный AuthenticationUserDetailsService и передать его в PreAuthenticatedAuthenticationProvider, здесь вы можете получить предоставленные права доступа и вернуть их в объект UserDetails
<bean id="preAuthAuthenticationProvider"
class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider">
<property name="preAuthenticatedUserDetailsService">
<bean id="myUserDetailsService"
class="MyUserDetailsService">
</bean>
</property>
</bean>
Если вы предоставили авторизацию, не начиная с префикса ROLE по умолчанию, вы можете указать свой префикс
<bean id="myPermissionRoleVoter" class="org.springframework.security.access.vote.RoleVoter">
<property name="rolePrefix" value="myprefix"/>
</bean>