Вы можете создать компонент, например,
@Component
public class AuthComponent {
public boolean hasPermission(User user, Long id) {
// do whatever checks you want here
return someResult;
}
}
И затем вы можете получить доступ к методу компонента в SPEL следующим образом:
@PreAuthorize("@authComponent.hasPermission(#authUser, #userId)")
Поскольку SPEL поддерживает ссылку на компонент через @ документы