Untitled
unknown
plain_text
2 years ago
1.8 kB
7
Indexable
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class GatewayFilter implements Filter {
private static final String GATEWAY_URL = "http://localhost:20201"; // адрес клиентского приложения
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
// Если запрос пришел от клиента
if (httpRequest.getHeader("X-Forwarded-For") == null) {
// Отправляем запрос на авторизацию в провайдер GitLab
// ...
// Получаем токен авторизации от провайдера GitLab
// ...
// Добавляем токен авторизации в заголовок запроса
httpRequest.addHeader("Authorization", "Bearer " + accessToken);
}
chain.doFilter(request, response);
// Если ответ от провайдера GitLab идет в шлюз
if (httpResponse.getHeader("X-Forwadred-From") != null) {
// Устанавливаем заголовок ответа для разрешения доступа от клиента
httpResponse.addHeader("Access-Control-Allow-Origin", GATEWAY_URL);
}
}
// Переопределение остальных методов интерфейса Filter
}
Editor is loading...
Leave a Comment