Ben Şimdi bir arka plan görevi bu yöntemi çağırmanız gerekir Yay Güvenliği: Arka plan görevinde @PreAuthorize ile güvenli yöntem çağırma yöntemi nedir?
@PreAuthorize("hasRole('ROLE_ADMIN') and (#action.userId != principal.id)")
public void execute(EditAction action)
@PreAuthorize
ile güvenli bir yöntem var. Ben sadece bu kodu çalıştırırsanız - bir istisna yakalamak:AuthenticationCredentialsNotFoundException: Bir kimlik doğrulaması nesne SecurityContext
bulunamadı görünüyor, ben SecurityContext herhangi Authentication ayarlamanız gerekir. Yapabilirim:
- Arka plan görevleri için bazı özel AuthenticationToken yazın.
- Kullanıcı Adı ParolaAuthentication Kullanarak Sahte Kullanıcı.
- Arka plan görevlerinde güvenli yöntemleri kullanmayın.
- Başka bir şey var mı? Doğru yol
nedir? (Bir web uygulamasında kullanılırsa) Bir Kimlik Doğrulama kayıt olabilirsiniz
Bazı kodları gösterebilir misiniz? Nasıl arıyorsun? –
Bu şeffaf bir çağrı değil - komut desenini kullanıyoruz. Güvenli yöntem, İşleyici'nin bir yöntemidir. Bir "arka plan görevi" ile bir jms MessageListener veya bazı @Scheduled yöntemini kastediyorum. Bir yöntemi göndererek, güvenli bir şekilde yöntemi çağırıyorum. – Popandopolos