Я пытаюсь внедрить систему аутентификации в своем приложении Dropwizard, но не могу использовать класс User, который, по-видимому, воспринимается всеми примерами как должное.
Я использую информацию с собственного сайта Dropwizard, которая соответствует различным другим учебным пособиям и примерам, которые я нашел в Интернете о том, как он реализует аутентификатор.
https://www.dropwizard.io/1.0.0/docs/manual/auth.html
Это пример Аутентификатора, который я по сути скопировал:
public class ExampleAuthenticator implements Authenticator<BasicCredentials, User> {
@Override
public Optional<User> authenticate(BasicCredentials credentials) throws AuthenticationException {
if ("secret".equals(credentials.getPassword())) {
return Optional.of(new User(credentials.getUsername()));
}
return Optional.absent();
}
}
Однако, когда я пытаюсь сделать это, единственный способ, которым моя среда IDE может разрешить зависимость «Пользователь», - это пользователь из библиотеки «org.jetty.eclipse.Authentication», которая не компилируется, поскольку не расширяет Основной класс, необходимый для интерфейса Authenticator.
Это соответствующая часть моего пом:
<properties>
<dropwizard.version>1.3.5</dropwizard.version>
</properties>
<dependencies>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
<version>${dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-jdbi</artifactId>
<version>${dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-auth</artifactId>
<version>${dropwizard.version}</version>
</dependency>
</dependencies>
Код либо отказывается компилироваться, потому что версия Jetty «Пользователь» не соответствует интерфейсу, либо потому, что не может найти другую версию «Пользователь». Есть ли зависимость, по которой я скучаю? Должен ли я реализовывать свой собственный класс User, а об этом просто не упоминалось ни в одном из примеров?