Ich habe einen Authentifizierungsdienst und ein Modul für die Clients, die enthalten sein können, um den authentifizierten Benutzer abzurufen und das Token zu überprüfen.Frühling autowired Benutzer
Was ich erreichen möchte, ist in der Lage, dies zu tun: @Autowired MyUser user
, um den richtigen Benutzer (Anfrage Umfang) abzurufen.
Was ich getan habe:
Im separaten Modul, das die Clients können sein:
@Configuration
public class MyUserHolder {
@Bean
@Scope(value="request", proxyMode= ScopedProxyMode.TARGET_CLASS)
public MyUser getMyUser() {
return (MyUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
}
}
Und im Client:
@Autowired MyUser user
Es gibt keine Anmerkungen auf dem MyUser Klasse (ist das korrekt?)
Der Fehler, den ich bekomme, ist:
org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [...MyUser] found for dependency [...MyUser]:
expected at least 1 bean which qualifies as autowire candidate for this dependency.
Ich bin nicht sicher, ob das Problem kommt von der Tatsache, dass das Objekt und Anmerkungen in einem anderen Modul (inklusive Glas) sind, oder wenn die Anmerkungen nur unvollständig sind ... Es fühlt sich an wie das MyUserHolder nicht ist korrekt im Spring-Kontext verfügbar
Stellen Sie sicher, dass Ihre Anwendung die MyUserHolder-Klasse scannt (Komponentenscan), bevor MyUser im Client automatisch verkabelt wird. – ankidaemon
Dumm mich, das hat alles gelöst :) Wenn du es als Antwort postest, werde ich es akzeptieren –