Skip to content

Commit

Permalink
fix(statefulRoute): sensitive column may can't get result (#3261)
Browse files Browse the repository at this point in the history
* fix statefulroute

* fix statefulroute
  • Loading branch information
ungreat committed Sep 4, 2024
1 parent 52d91ec commit 42dd01a
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
import com.oceanbase.odc.service.datasecurity.model.SensitiveRule;
import com.oceanbase.odc.service.db.browser.DBSchemaAccessors;
import com.oceanbase.odc.service.session.factory.DefaultConnectSessionFactory;
import com.oceanbase.odc.service.state.StatefulUuidStateIdGenerator;
import com.oceanbase.tools.dbbrowser.model.DBTableColumn;
import com.oceanbase.tools.dbbrowser.schema.DBSchemaAccessor;

Expand All @@ -56,11 +57,12 @@
@Component
public class SensitiveColumnScanningTaskManager {

private final SensitiveColumnScanningResultCache cache = SensitiveColumnScanningResultCache.getInstance();
@Autowired
@Qualifier("scanSensitiveColumnExecutor")
private ThreadPoolTaskExecutor executor;

private final SensitiveColumnScanningResultCache cache = SensitiveColumnScanningResultCache.getInstance();
@Autowired
private StatefulUuidStateIdGenerator statefulUuidStateIdGenerator;

public SensitiveColumnScanningTaskInfo start(List<Database> databases, List<SensitiveRule> rules,
ConnectionConfig connectionConfig, Map<Long, List<SensitiveColumnMeta>> databaseId2SensitiveColumns) {
Expand All @@ -84,7 +86,8 @@ public SensitiveColumnScanningTaskInfo start(List<Database> databases, List<Sens
database2View2ColumnsList.put(database, view2Columns);
}
}
SensitiveColumnScanningTaskInfo taskInfo = new SensitiveColumnScanningTaskInfo(projectId, objectCount);
SensitiveColumnScanningTaskInfo taskInfo = new SensitiveColumnScanningTaskInfo(
statefulUuidStateIdGenerator.generateStateId("SensitiveColumn"), projectId, objectCount);
if (objectCount == 0) {
taskInfo.setCompleteTime(new Date());
taskInfo.setStatus(ScanningTaskStatus.SUCCESS);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@
import com.oceanbase.odc.service.iam.UserService;
import com.oceanbase.odc.service.iam.auth.AuthenticationFacade;
import com.oceanbase.odc.service.session.factory.DefaultConnectSessionFactory;
import com.oceanbase.odc.service.state.model.StateName;
import com.oceanbase.odc.service.state.model.StatefulRoute;
import com.oceanbase.tools.dbbrowser.model.DBTableColumn;
import com.oceanbase.tools.dbbrowser.schema.DBSchemaAccessor;

Expand All @@ -90,38 +92,28 @@
@Authenticated
public class SensitiveColumnService {

private static final SensitiveColumnMapper mapper = SensitiveColumnMapper.INSTANCE;
@Autowired
private SensitiveRuleService ruleService;

@Autowired
private MaskingAlgorithmService algorithmService;

@Autowired
private ConnectionService connectionService;

@Autowired
private SensitiveColumnRepository repository;

@Autowired
private UserService userService;

@Autowired
private DatabaseService databaseService;

@Autowired
private SensitiveColumnScanningTaskManager scanningTaskManager;

@Autowired
private AuthenticationFacade authenticationFacade;

@Autowired
private HorizontalDataPermissionValidator permissionValidator;

@Autowired
private VersionDiffConfigService versionDiffConfigService;

private static final SensitiveColumnMapper mapper = SensitiveColumnMapper.INSTANCE;

@Transactional(rollbackFor = Exception.class)
@PreAuthenticate(hasAnyResourceRole = {"OWNER, DBA, SECURITY_ADMINISTRATOR"}, resourceType = "ODC_PROJECT",
indexOfIdParam = 0)
Expand Down Expand Up @@ -388,6 +380,7 @@ public SensitiveColumnScanningTaskInfo startScanning(@NotNull Long projectId,
@Transactional(rollbackFor = Exception.class)
@PreAuthenticate(hasAnyResourceRole = {"OWNER, DBA, SECURITY_ADMINISTRATOR"}, resourceType = "ODC_PROJECT",
indexOfIdParam = 0)
@StatefulRoute(stateName = StateName.UUID_STATEFUL_ID, stateIdExpression = "#taskId")
public SensitiveColumnScanningTaskInfo getScanningResults(@NotNull Long projectId, @NotBlank String taskId) {
SensitiveColumnScanningTaskInfo taskInfo = scanningTaskManager.get(taskId);
if (!Objects.equals(taskInfo.getProjectId(), projectId)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import java.util.Date;
import java.util.List;

import com.oceanbase.odc.common.util.StringUtils;
import com.oceanbase.odc.core.shared.constant.ErrorCode;

import lombok.Getter;
Expand All @@ -43,8 +42,9 @@ public class SensitiveColumnScanningTaskInfo {
private ErrorCode errorCode;
private String errorMsg;

public SensitiveColumnScanningTaskInfo(@NonNull Long projectId, @NonNull Integer allTableCount) {
this.taskId = StringUtils.uuid();
public SensitiveColumnScanningTaskInfo(@NonNull String taskId, @NonNull Long projectId,
@NonNull Integer allTableCount) {
this.taskId = taskId;
this.projectId = projectId;
this.status = ScanningTaskStatus.CREATED;
this.allTableCount = allTableCount;
Expand Down

0 comments on commit 42dd01a

Please sign in to comment.