Hier ist mein @RequestScoped kommentierte Klasse:
Code: Select all
@RequestScoped
public class UserContext {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
< /code>
Hier ist meine Filterklasse: < /p>
@Provider
public class AuthenticationContextProvider implements ContainerRequestFilter {
@Inject
UserContext userContext;
@Override
public void filter(ContainerRequestContext requestContext) {
var securityContext = requestContext.getSecurityContext();
if(securityContext != null) {
var principal = securityContext.getUserPrincipal();
if(principal != null && principal instanceof JWTCallerPrincipal jwt) {
userContext.setId(jwt.getName());
} else if (principal != null) {
userContext.setId(principal.getName());
}
}
}
}
public class GreetingResource {
@Inject
UserContext userContext;
@GET
@Path("/hello")
public String sayHello() {
return "Hello " + userContext.getId();
}
}
< /code>
Das Problem ist, dass ich, wenn ich meinen Kontext aus einer Ebene in meiner Anwendung abzurufen (mit @inject wie bei @Context), eine Nicht-Null-Instanz meiner Kontextklasse abgerufen, aber aber Die Felder sind alle null. Ich habe einen Haltepunkt kurz nach dem Anruf in meinen Kontext -Setter festgelegt, um zu überprüfen, ob das Feld aktualisiert wurde, aber es war nicht, es ist immer noch null. .4 mit diesen Abhängigkeiten: < /p>
- Quarkus-arc < /li>
Quarkus-rest < /li>
quarkus-rest-jackson - quarkus-hibernate-orm-panache
- quarkus-jdbc-postgresql
- quarkus-hibernate-validator
- quarkus-oidc
Haben Sie irgendwelche Ideen ?