Skip to content

Commit

Permalink
bugfix: fix access key loss after server restart (#5097)
Browse files Browse the repository at this point in the history
  • Loading branch information
renliangyu857 authored Nov 27, 2022
1 parent 04e4fb5 commit 7aeff88
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 5 deletions.
1 change: 1 addition & 0 deletions changes/en-us/develop.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ Add changes here for all PR submitted to the develop branch.
- [[#5052](https://github.com/seata/seata/pull/5052)] fix update join condition placeholder param error
- [[#5031](https://github.com/seata/seata/pull/5031)] fix mysql InsertOnDuplicateUpdate should not use null index value as image sql query condition
- [[#5075](https://github.com/seata/seata/pull/5075)] fix InsertOnDuplicateUpdateExecutor could not intercept the sql which has no primary and unique key
- [[#5093](https://github.com/seata/seata/pull/5093)] fix access key loss after seata server restart
- [[#5092](https://github.com/seata/seata/pull/5092)] fix when seata and jpa are used together, their AutoConfiguration order is incorrect


Expand Down
1 change: 1 addition & 0 deletions changes/zh-cn/develop.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
- [[#5052](https://github.com/seata/seata/pull/5052)] 修复update join条件中占位符参数问题
- [[#5031](https://github.com/seata/seata/pull/5031)] 修复InsertOnDuplicateUpdate中不应该使用null值索引作为查询条件
- [[#5075](https://github.com/seata/seata/pull/5075)] 修复InsertOnDuplicateUpdate无法拦截无主键和唯一索引的SQL
- [[#5093](https://github.com/seata/seata/pull/5093)] 修复seata server重启后access key丢失问题
- [[#5092](https://github.com/seata/seata/pull/5092)] 修复当seata and jpa共同使用时, AutoConfiguration的顺序不正确的问题

### optimize:
Expand Down
14 changes: 12 additions & 2 deletions common/src/main/java/io/seata/common/ConfigurationKeys.java
Original file line number Diff line number Diff line change
Expand Up @@ -740,15 +740,25 @@ public interface ConfigurationKeys {
*/
String TM_INTERCEPTOR_ORDER = CLIENT_TM_PREFIX + "interceptorOrder";

/**
* The constant ACCESS_KEY.
*/
String ACCESS_KEY = "accesskey";

/**
* The constant SECRET_KEY.
*/
String SECRET_KEY = "secretkey";

/**
* The constant SEATA_ACCESS_KEY.
*/
String SEATA_ACCESS_KEY = SEATA_PREFIX + "accesskey";
String SEATA_ACCESS_KEY = SEATA_PREFIX + ACCESS_KEY;

/**
* The constant SEATA_SECRET_KEY.
*/
String SEATA_SECRET_KEY = SEATA_PREFIX + "secretkey";
String SEATA_SECRET_KEY = SEATA_PREFIX + SECRET_KEY;

/**
* The constant EXTRA_DATA_SPLIT_CHAR.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ public class DbStateMachineConfig extends DefaultStateMachineConfig implements D
private DataSource dataSource;
private String applicationId;
private String txServiceGroup;
private String accessKey;
private String secretKey;
private String tablePrefix = "seata_";
private String dbType;
private SagaTransactionalTemplate sagaTransactionalTemplate;
Expand All @@ -68,6 +70,8 @@ public DbStateMachineConfig() {
setSagaJsonParser(configuration.getConfig(ConfigurationKeys.CLIENT_SAGA_JSON_PARSER, DEFAULT_SAGA_JSON_PARSER));
this.applicationId = configuration.getConfig(ConfigurationKeys.APPLICATION_ID);
this.txServiceGroup = configuration.getConfig(ConfigurationKeys.TX_SERVICE_GROUP);
this.accessKey = configuration.getConfig(ConfigurationKeys.ACCESS_KEY,null);
this.secretKey = configuration.getConfig(ConfigurationKeys.SECRET_KEY,null);
setSagaRetryPersistModeUpdate(configuration.getBoolean(ConfigurationKeys.CLIENT_SAGA_RETRY_PERSIST_MODE_UPDATE,
DEFAULT_CLIENT_SAGA_RETRY_PERSIST_MODE_UPDATE));
setSagaCompensatePersistModeUpdate(configuration.getBoolean(ConfigurationKeys.CLIENT_SAGA_COMPENSATE_PERSIST_MODE_UPDATE,
Expand Down Expand Up @@ -110,6 +114,8 @@ public void afterPropertiesSet() throws Exception {
defaultSagaTransactionalTemplate.setApplicationContext(getApplicationContext());
defaultSagaTransactionalTemplate.setApplicationId(applicationId);
defaultSagaTransactionalTemplate.setTxServiceGroup(txServiceGroup);
defaultSagaTransactionalTemplate.setAccessKey(accessKey);
defaultSagaTransactionalTemplate.setSecretKey(secretKey);
defaultSagaTransactionalTemplate.afterPropertiesSet();
sagaTransactionalTemplate = defaultSagaTransactionalTemplate;
}
Expand Down Expand Up @@ -162,6 +168,22 @@ public void setTxServiceGroup(String txServiceGroup) {
this.txServiceGroup = txServiceGroup;
}

public String getAccessKey() {
return accessKey;
}

public void setAccessKey(String accessKey) {
this.accessKey = accessKey;
}

public String getSecretKey() {
return secretKey;
}

public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
}

public void setSagaTransactionalTemplate(SagaTransactionalTemplate sagaTransactionalTemplate) {
this.sagaTransactionalTemplate = sagaTransactionalTemplate;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ public class DefaultSagaTransactionalTemplate

private String applicationId;
private String txServiceGroup;
private String accessKey;
private String secretKey;
private ApplicationContext applicationContext;

@Override
Expand Down Expand Up @@ -214,7 +216,7 @@ private void initSeataClient() {
"applicationId: " + applicationId + ", txServiceGroup: " + txServiceGroup);
}
//init TM
TMClient.init(applicationId, txServiceGroup);
TMClient.init(applicationId, txServiceGroup, accessKey, secretKey);
if (LOGGER.isInfoEnabled()) {
LOGGER.info(
"Transaction Manager Client is initialized. applicationId[" + applicationId + "] txServiceGroup["
Expand Down Expand Up @@ -246,7 +248,7 @@ private void registerSpringShutdownHook() {
((ConfigurableApplicationContext)applicationContext).registerShutdownHook();
ShutdownHook.removeRuntimeShutdownHook();
}
ShutdownHook.getInstance().addDisposable(TmNettyRemotingClient.getInstance(applicationId, txServiceGroup));
ShutdownHook.getInstance().addDisposable(TmNettyRemotingClient.getInstance(applicationId, txServiceGroup, accessKey, secretKey));
ShutdownHook.getInstance().addDisposable(RmNettyRemotingClient.getInstance(applicationId, txServiceGroup));
}

Expand Down Expand Up @@ -279,4 +281,20 @@ public String getTxServiceGroup() {
public void setTxServiceGroup(String txServiceGroup) {
this.txServiceGroup = txServiceGroup;
}

public String getAccessKey() {
return accessKey;
}

public void setAccessKey(String accessKey) {
this.accessKey = accessKey;
}

public String getSecretKey() {
return secretKey;
}

public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ private void registerSpringShutdownHook() {
((ConfigurableApplicationContext) applicationContext).registerShutdownHook();
ShutdownHook.removeRuntimeShutdownHook();
}
ShutdownHook.getInstance().addDisposable(TmNettyRemotingClient.getInstance(applicationId, txServiceGroup));
ShutdownHook.getInstance().addDisposable(TmNettyRemotingClient.getInstance(applicationId, txServiceGroup, accessKey, secretKey));
ShutdownHook.getInstance().addDisposable(RmNettyRemotingClient.getInstance(applicationId, txServiceGroup));
}

Expand Down

0 comments on commit 7aeff88

Please sign in to comment.