Untitled
unknown
plain_text
9 days ago
1.8 kB
1
Indexable
Never
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 }
Leave a Comment