Получение java.lang.IllegalStateException: не найден менеджер сущностей с привязкой к потоку в ContainerRequestFilter - PullRequest
0 голосов
/ 11 апреля 2019

Я использую dropwizard. Я создал фильтр для аутентификации пользователя. Здесь в коде sessionRepository это тот, который делает все разговоры с таблицей сеансов в базе данных. Функция отлично работает при использовании внутри ресурсов, но не работает при использовании ContainerRequestFilter. Давать ошибку:

java.lang.IllegalStateException: Менеджер сущностей без привязки к потоку.

@Slf4j
@javax.ws.rs.ext.Provider
@Authenticate
public class TestFilter implements ContainerRequestFilter {

  public static final String USER_ID = "X_USER_ID";

  @Context
  private ResourceInfo resourceInfo;

  private Provider<SessionRepository> sessionRepository;

  private Provider<DeviceRepository> deviceProvider;

  @Inject
  public TestFilter(Provider<SessionRepository> sessionRepository,
      Provider<DeviceRepository> deviceProvider) {
    this.sessionRepository = sessionRepository;
    this.deviceProvider = deviceProvider;
  }

  @Override
  public void filter(ContainerRequestContext request) {
    Optional<Session> session = sessionRepository.get().getActiveSessionBySessionId("sample-session");
    log.info("Inside filter");
  }
}
...