Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,18 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;

/**
* API Gateway & Auth Service Application
* 统一的API网关和认证授权微服务
* 提供路由、鉴权、限流等功能
*/
@SpringBootApplication
@ComponentScan(basePackages = {"com.datamate.gateway", "com.terrabase"})
@EnableFeignClients(basePackages = {"com.terrabase"})
public class ApiGatewayApplication {

public static void main(String[] args) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package com.datamate.gateway.filter;

import com.terrabase.enterprise.api.UserManagementService;
import com.terrabase.enterprise.api.dto.LoginUserDto;
import com.terrabase.enterprise.api.sdk.TerrabaseSDK;
import com.terrabase.enterprise.api.sdk.TerrabaseSDKConfig;
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
Expand All @@ -15,33 +14,23 @@
/**
* 用户信息过滤器
*
* @since 2025/12/22
*/
@Slf4j
@Component
public class UserContextFilter implements GlobalFilter {
@Value("${terrabase.jar.path:/opt/terrabase}")
private String jarPath;

@Value("${commercial.switch:false}")
private boolean isCommercial;

private TerrabaseSDK terrabaseSDK;

@PostConstruct
public void init() {
TerrabaseSDKConfig sdkConfig = TerrabaseSDKConfig.createDefault();
sdkConfig.setJarPath(jarPath);
terrabaseSDK = TerrabaseSDK.init(sdkConfig);
}
@Autowired
private UserManagementService userManagementService;

@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
if (!isCommercial) {
return chain.filter(exchange);
}
try {
LoginUserDto loginUserDto = terrabaseSDK.userManagement().getCurrentUserInfo().getData().getFirst();
LoginUserDto loginUserDto = userManagementService.getCurrentUserInfo().getData().getFirst();
} catch (Exception e) {
log.error("get current user info error", e);
return chain.filter(exchange);
Expand Down
22 changes: 22 additions & 0 deletions backend/api-gateway/src/main/resources/application.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
spring:
main:
allow-circular-references: true
application:
name: datamate-gateway # 必须设置应用名

cloud:
nacos:
discovery:
fail-fast: false
# 显式设置端口
port: ${server.port:30000} # 与服务端口一致
server-addr: ${NACOS_ADDR:https://consulservice:18302}
username: consul
password:
ip: ${spring.application.name}
secure: true
cluster-name: DEFAULT

# 服务器端口配置
server:
port: 8080 # 必须有这个配置
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ def _filter_file(file: DatasetFiles, conditions: FilterCondition) -> bool:
for tag in all_tags:
if conditions.label.label and tag.get("label") != conditions.label.label:
continue
if conditions.label.value is not None:
if conditions.label.value is None:
return True
if tag.get("value") == conditions.label.value:
return True
Expand Down
2 changes: 1 addition & 1 deletion scripts/images/gateway/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ RUN cd /opt/gateway/api-gateway && \
FROM eclipse-temurin:21-jdk

RUN apt-get update && \
apt-get install -y vim wget curl dos2unix && \
apt-get install -y vim wget curl python3 python3-pip python-is-python3 dos2unix && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

Expand Down