From 273b26cecb943c902e35a7cd9e4088d6f9a9700e Mon Sep 17 00:00:00 2001 From: Matej Hrica <492778@mail.muni.cz> Date: Sun, 7 May 2023 23:55:41 +0200 Subject: [PATCH] Pass auth header to api in report --- .../server/facade/ReportFacadeImpl.java | 41 ++++++++++++++----- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/report/src/main/java/cz/muni/fi/pa165/report/server/facade/ReportFacadeImpl.java b/report/src/main/java/cz/muni/fi/pa165/report/server/facade/ReportFacadeImpl.java index 4972441..a84d5c3 100644 --- a/report/src/main/java/cz/muni/fi/pa165/report/server/facade/ReportFacadeImpl.java +++ b/report/src/main/java/cz/muni/fi/pa165/report/server/facade/ReportFacadeImpl.java @@ -6,13 +6,19 @@ import java.util.List; import java.util.Map; import cz.muni.fi.pa165.core.client.*; +import cz.muni.fi.pa165.core.client.invoker.ApiClient; import cz.muni.fi.pa165.core.client.invoker.ApiException; import cz.muni.fi.pa165.core.client.model.*; import cz.muni.fi.pa165.report.server.ReportType; import cz.muni.fi.pa165.report.server.exceptions.ResourceNotFoundException; import cz.muni.fi.pa165.report.server.service.ReportDocumentService; +import cz.muni.fi.pa165.user.client.UserApi; import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.Resource; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.oauth2.core.OAuth2AccessToken; +import org.springframework.security.oauth2.server.resource.authentication.BearerTokenAuthentication; +import org.springframework.security.oauth2.server.resource.introspection.OAuth2IntrospectionAuthenticatedPrincipal; import org.springframework.stereotype.Service; @Service @@ -26,15 +32,28 @@ public class ReportFacadeImpl implements ReportFacade{ this.documentData = new HashMap<>(); } + ApiClient getApiClient() { + var client = new ApiClient(); + client.setRequestInterceptor((builder -> { + var authentication = SecurityContextHolder.getContext().getAuthentication(); + var authPrincipal = (OAuth2IntrospectionAuthenticatedPrincipal) authentication.getPrincipal(); + var token = (OAuth2AccessToken) (((BearerTokenAuthentication) authentication).getToken()); + builder.header("Authorization", "Bearer " + token.getTokenValue()); + })); + return client; + } + @Override public Resource getReportAirportById(Long id){ AirportDto airport; CityDto cityDto; CountryDto countryDto; - CountryApi countryApi = new CountryApi(); - CityApi cityApi = new CityApi(); - AirportApi airportApi = new AirportApi(); + + var client = getApiClient(); + CountryApi countryApi = new CountryApi(client); + CityApi cityApi = new CityApi(client); + AirportApi airportApi = new AirportApi(client); List<String> airportData = new ArrayList<>(); List<String> cityData = new ArrayList<>(); @@ -68,11 +87,11 @@ public class ReportFacadeImpl implements ReportFacade{ @Override public Resource getReportFlightById(Long id){ - - FlightApi flightApi = new FlightApi(); - StewardApi stewardApi = new StewardApi(); - AirplaneApi airplaneApi = new AirplaneApi(); - AirportApi airportApi = new AirportApi(); + var client = getApiClient(); + FlightApi flightApi = new FlightApi(client); + StewardApi stewardApi = new StewardApi(client); + AirplaneApi airplaneApi = new AirplaneApi(client); + AirportApi airportApi = new AirportApi(client); AirplaneDto airplaneDto; AirportDto arrivalAirportDto; AirportDto departureAirportDto; @@ -129,9 +148,9 @@ public class ReportFacadeImpl implements ReportFacade{ @Override public Resource getReportAirplaneById(Long id){ - - AirplaneApi airplaneApi = new AirplaneApi(); - AirplaneTypeApi airplaneTypeApi = new AirplaneTypeApi(); + var client = getApiClient(); + AirplaneApi airplaneApi = new AirplaneApi(client); + AirplaneTypeApi airplaneTypeApi = new AirplaneTypeApi(client); AirplaneTypeDto airplaneTypeDto; AirplaneDto airplane; List<String> airplaneData = new ArrayList<>(); -- GitLab