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