Ich habe versucht, Dropwizard-Authentifizierung in meinem Code, aber einige Probleme in POST-Aufruf zur Laufzeit, obwohl es funktioniert gut mit GET. das ist, wie ich dies in der GET-Aufruf bin mit:Dropwizard-Authentifizierung mit POST-Aufrufe fehlgeschlagen
@Override
@GET
@Path("/auth")
public Response doAuth(@Auth User user) {
//do something
}
Und dann in Post Anruf, der nicht funktioniert:
@Override
@POST
@Path("/")
public Response createLegalEntity(@Auth User user, LegalEntity createLegalEntity) {
// do something
}
Während des Laufens wird folgende Fehler werfen:
SEVERE: Missing dependency for method public javax.ws.rs.core.Response org.flipkart.api.LegalEntityResource.createLegalEntity(com.yammer.dropwizard.authenticator.User,org.flipkart.model.LegalEntity) at parameter at index 0
Ich bin neu bei Dropwizard und nicht in der Lage, die Ursache des Problems herauszufinden.
UPDATE
Hier ist, wie ich meine LDAP-Authentifizierung configs registriert haben:
final LdapConfiguration ldapConfiguration = configuration.getLdapConfiguration();
Authenticator<BasicCredentials, User> ldapAuthenticator = new CachingAuthenticator<>(
environment.metrics(),
new ResourceAuthenticator(new LdapAuthenticator(ldapConfiguration)),
ldapConfiguration.getCachePolicy());
environment.jersey().register(new AuthDynamicFeature(
new BasicCredentialAuthFilter.Builder<User>()
.setAuthenticator(ldapAuthenticator)
.setRealm("LDAP")
.buildAuthFilter()));
environment.jersey().register(new AuthValueFactoryProvider.Binder<>(User.class));
Nizza Erklärung, jetzt weiß ich, wie die Ressourcen initialisiert werden, aber das Problem ist, ich habe meinen Code bereits registriert AuthValueFactoryProvider.Binder in, dieses Problem weiterhin auftritt, überprüfen bitte mein Update auf die Frage – user2098324
Ist das eine Laufzeit (auf Anfrage) Fehler oder Startfehler? Wenn ersteres, ich glaube, ich lag falsch in meiner Annahme. Wenn es sich um einen Startfehler handelt, handelt es sich um eine ModelValidationException. Es sieht jedoch so aus, als ob der Fehler auf Anfrage auftritt, da ein Objekt, das injiziert werden soll, nicht gefunden werden kann. Stellen Sie in diesem Fall sicher, dass Sie tatsächlich einen Benutzer vom Authentifikator zurückgeben. Das ist der einzige Gedanke, den ich mir vorstellen kann, dass dieser Fehler zur Laufzeit –
ist es tatsächlich ein Startfehler, aber es gibt keine ModelValidationException in der StackTrace, überprüfen Sie bitte die Protokolle https://justpaste.it/15luy – user2098324