Я пытаюсь создать API с конечными точками Google Cloud.
Поскольку облачные конечные точки не обеспечивают аутентификацию помимо собственного OAuth Google, я пытаюсь создать свой собственный. Поэтому я хочу получить доступ к параметрам, предоставленным для API (например, токен @Named("token")) внутри фильтра сервлета.
К сожалению, я не могу найти предоставленную информацию внутри httpRequest. Это нормально? Есть ли возможность доступа к параметрам?
Я был бы признателен, если бы кто-нибудь мог мне помочь!
ОБНОВЛЕНИЕ:
С информацией от jirungaray я попытался создать аутентификацию с использованием заголовков, но столкнулся с той же проблемой. Использовал REST-клиент для отправки некоторых заголовков, так как я не мог понять, как это сделать с помощью API Explorer. Внутри моего фильтра я пытаюсь получить доступ к токену из заголовков:
@Override
public void doFilter(
ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
String authToken = httpRequest.getHeader(Constants.AUTH_TOKEN);
...
chain.doFilter(request, response);
}
Причина, по которой я пытаюсь сделать что-то подобное, заключается в том, что я использую Guice для внедрения зависимостей и хочу, чтобы мой токен был внедрен внутрь другого объекта.
С Guice у меня есть следующий провайдер, использующий токен для внедрения FacebookClient (используя токен) для каждого запроса.
@Provides
public FacebookClient getFacebookClientProvider(@Named("fbToken") Provider<String> fbToken) {
return new DefaultFacebookClient(fbToken.get(), Version.VERSION_2_2);
}
Как описано в вики Guice (SevletModule), здесь используется фильтр sevlet для получить информацию из запроса.
Есть ли какое-либо решение для достижения такого рода DI с облачными конечными точками?