1.com/qaup/collision/datacollector/service/AuthService.java修改获取token的方法--添加参数baseUrl 2.application-prod中添加data.collector.airport-api.glide-url 滑行路由基础url变量 3.com/qaup/collision/datacollector/service/DataCollectorService.java 将arrival-route和departure-route方法的基础路由改为airportGlideUrl
This commit is contained in:
parent
f513cbb228
commit
d02a6532ea
@ -60,6 +60,8 @@ data:
|
||||
# 机场数据源配置(支持环境变量)
|
||||
airport-api:
|
||||
base-url: ${AIRPORT_API_BASE_URL:http://localhost:8090}
|
||||
# 滑行路由
|
||||
glide-url: ${AIRPORT_API_GLIDE_URL:http://localhost:8099}
|
||||
auth:
|
||||
username: ${AIRPORT_API_USERNAME:dianxin}
|
||||
password: ${AIRPORT_API_PASSWORD:dianxin@123}
|
||||
|
||||
@ -34,9 +34,14 @@ spring:
|
||||
# 国际化资源文件路径
|
||||
basename: i18n/messages
|
||||
|
||||
main:
|
||||
# 允许同名bean覆盖
|
||||
allow-bean-definition-overriding: true
|
||||
|
||||
# 默认激活的profile(开发环境)
|
||||
profiles:
|
||||
active: dev,druid
|
||||
# active: dev,druid
|
||||
active: prod,druid
|
||||
|
||||
# 文件上传
|
||||
servlet:
|
||||
|
||||
@ -45,6 +45,10 @@ public class DataCollectorDao {
|
||||
@Value("${data.collector.airport-api.base-url}")
|
||||
private String airportBaseUrl;
|
||||
|
||||
// 滑行路由基础url
|
||||
@Value("${data.collector.airport-api.glide-url}")
|
||||
private String airportGlideUrl;
|
||||
|
||||
// 无人车厂商数据源相关配置
|
||||
@Value("${data.collector.vehicle-api.base-url}")
|
||||
private String vehicleBaseUrl;
|
||||
@ -68,7 +72,7 @@ public class DataCollectorDao {
|
||||
.toUriString();
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.set("Authorization", authService.getToken());
|
||||
headers.set("Authorization", authService.getToken(baseUrl));
|
||||
HttpEntity<Void> requestEntity = new HttpEntity<>(headers);
|
||||
|
||||
ResponseEntity<Response<List<ExternalAircraftData>>> response = restTemplate.exchange(
|
||||
@ -116,7 +120,7 @@ public class DataCollectorDao {
|
||||
.toUriString();
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.set("Authorization", authService.getToken());
|
||||
headers.set("Authorization", authService.getToken(baseUrl));
|
||||
HttpEntity<Void> requestEntity = new HttpEntity<>(headers);
|
||||
|
||||
ResponseEntity<Response<List<ExternalAirportVehicleData>>> response = restTemplate.exchange(
|
||||
@ -202,13 +206,13 @@ public class DataCollectorDao {
|
||||
*/
|
||||
public AircraftRouteDTO getArrivalRoute(String inRunway, String outRunway, String contactCross, String seat) {
|
||||
try {
|
||||
String token = authService.getToken();
|
||||
String token = authService.getToken(airportGlideUrl);
|
||||
if (token == null) {
|
||||
log.error("无法获取有效的认证token");
|
||||
return null;
|
||||
}
|
||||
|
||||
String url = UriComponentsBuilder.fromUriString(airportBaseUrl)
|
||||
String url = UriComponentsBuilder.fromUriString(airportGlideUrl)
|
||||
.path("/runwayPathPlanningController/findArrTaxiwayByRunwayAndContactCrossAndSeat")
|
||||
.queryParam("inRunway", inRunway)
|
||||
.queryParam("outRunway", outRunway)
|
||||
@ -255,13 +259,13 @@ public class DataCollectorDao {
|
||||
*/
|
||||
public AircraftRouteDTO getDepartureRoute(String inRunway, String outRunway, String startSeat) {
|
||||
try {
|
||||
String token = authService.getToken();
|
||||
String token = authService.getToken(airportGlideUrl);
|
||||
if (token == null) {
|
||||
log.error("无法获取有效的认证token");
|
||||
return null;
|
||||
}
|
||||
|
||||
String url = UriComponentsBuilder.fromUriString(airportBaseUrl)
|
||||
String url = UriComponentsBuilder.fromUriString(airportGlideUrl)
|
||||
.path("/runwayPathPlanningController/findDepTaxiwayByRunwayAndContactCrossAndSeat")
|
||||
.queryParam("inRunway", inRunway)
|
||||
.queryParam("outRunway", outRunway)
|
||||
@ -304,7 +308,7 @@ public class DataCollectorDao {
|
||||
*/
|
||||
public AircraftStatusDTO getAircraftStatus() {
|
||||
try {
|
||||
String token = authService.getToken();
|
||||
String token = authService.getToken(airportBaseUrl);
|
||||
if (token == null) {
|
||||
log.error("无法获取有效的认证token");
|
||||
return null;
|
||||
@ -351,7 +355,7 @@ public class DataCollectorDao {
|
||||
*/
|
||||
public AircraftRouteParamsDTO getAircraftRouteParams(String flightNo, String routeType) {
|
||||
try {
|
||||
String token = authService.getToken();
|
||||
String token = authService.getToken(airportBaseUrl);
|
||||
if (token == null) {
|
||||
log.error("无法获取有效的认证token");
|
||||
return null;
|
||||
@ -400,7 +404,7 @@ public class DataCollectorDao {
|
||||
*/
|
||||
public List<FlightNotificationDTO> getFlightNotifications(String endpoint, String baseUrl) {
|
||||
try {
|
||||
String token = authService.getToken();
|
||||
String token = authService.getToken(airportBaseUrl);
|
||||
if (token == null) {
|
||||
log.error("无法获取有效的认证token");
|
||||
return Collections.emptyList();
|
||||
@ -465,7 +469,7 @@ public class DataCollectorDao {
|
||||
|
||||
try {
|
||||
// 获取认证token
|
||||
String token = authService.getToken();
|
||||
String token = authService.getToken(vehicleBaseUrl);
|
||||
if (token == null) {
|
||||
log.warn("无法获取认证token,跳过车辆 {} 的状态采集", vehicleId);
|
||||
return null;
|
||||
|
||||
@ -41,7 +41,7 @@ public class AuthService {
|
||||
}
|
||||
|
||||
//登录获取Token
|
||||
public String loginAndGetToken() {
|
||||
public String loginAndGetToken(String baseUrl) {
|
||||
String loginUrl = UriComponentsBuilder
|
||||
.fromUriString(baseUrl)
|
||||
.path(loginEndpoint)
|
||||
@ -75,7 +75,7 @@ public class AuthService {
|
||||
}
|
||||
|
||||
//Token续时
|
||||
public String refreshToken() {
|
||||
public String refreshToken(String baseUrl) {
|
||||
String refreshUrl = UriComponentsBuilder
|
||||
.fromUriString(baseUrl)
|
||||
.path(refreshEndpoint)
|
||||
@ -105,7 +105,7 @@ public class AuthService {
|
||||
log.error("Failed to refresh token: ", e);
|
||||
}
|
||||
// 如果续期失败,尝试重新登录
|
||||
return loginAndGetToken();
|
||||
return loginAndGetToken(baseUrl);
|
||||
}
|
||||
|
||||
//创造带有Token的请求头
|
||||
@ -118,18 +118,18 @@ public class AuthService {
|
||||
}
|
||||
|
||||
//获取Token
|
||||
public String getToken() {
|
||||
public String getToken(String baseUrl) {
|
||||
long currentTime = System.currentTimeMillis();
|
||||
if (token == null) {
|
||||
return loginAndGetToken();
|
||||
return loginAndGetToken(baseUrl);
|
||||
}
|
||||
// 如果token已过期,重新登录
|
||||
if (currentTime >= tokenExpiryTime) {
|
||||
return loginAndGetToken();
|
||||
return loginAndGetToken(baseUrl);
|
||||
}
|
||||
// 如果token即将过期(比如还有10分钟过期),尝试续期
|
||||
if (currentTime >= tokenExpiryTime - 600_000) {
|
||||
return refreshToken();
|
||||
return refreshToken(baseUrl);
|
||||
}
|
||||
return token;
|
||||
}
|
||||
|
||||
@ -24,6 +24,7 @@ public class JacksonConfig {
|
||||
* WebSocket专用ObjectMapper配置,支持Java 8时间类型
|
||||
* 用于WebSocket消息转换和其他JSON处理
|
||||
*/
|
||||
// @Bean("webSocketObjectMapper")
|
||||
@Bean
|
||||
@Primary
|
||||
public ObjectMapper websocketObjectMapper() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user