Browse Source

增加角色相关配置

tags/1.1.0
shaozhuguang 5 years ago
parent
commit
97201bf356
8 changed files with 51 additions and 7 deletions
  1. +3
    -1
      source/manager/ump-model/src/main/java/com/jd/blockchain/ump/model/PartiNode.java
  2. +4
    -2
      source/manager/ump-model/src/main/java/com/jd/blockchain/ump/model/PeerSharedConfigs.java
  3. +6
    -0
      source/manager/ump-model/src/main/java/com/jd/blockchain/ump/model/UmpConstant.java
  4. +11
    -2
      source/manager/ump-model/src/main/java/com/jd/blockchain/ump/model/config/LedgerInitConfig.java
  5. +2
    -0
      source/manager/ump-service/src/main/java/com/jd/blockchain/ump/service/SecurityService.java
  6. +15
    -0
      source/manager/ump-service/src/main/java/com/jd/blockchain/ump/service/SecurityServiceHandler.java
  7. +5
    -1
      source/manager/ump-service/src/main/java/com/jd/blockchain/ump/service/UmpServiceHandler.java
  8. +5
    -1
      source/manager/ump-service/src/main/resources/security.config

+ 3
- 1
source/manager/ump-model/src/main/java/com/jd/blockchain/ump/model/PartiNode.java View File

@@ -17,7 +17,7 @@ public class PartiNode {

private boolean isSecure;

public List<String> toConfigChars() {
public List<String> toConfigChars(List<String> partiRoleConfigs) {

List<String> configCharList = new ArrayList<>();

@@ -25,6 +25,8 @@ public class PartiNode {

configCharList.add(formatConfig(UmpConstant.PARTINODE_PUBKEY_FORMAT, pubKey));

configCharList.addAll(partiRoleConfigs);

configCharList.add(formatConfig(UmpConstant.PARTINODE_INIT_HOST_FORMAT, initHost));

configCharList.add(formatConfig(UmpConstant.PARTINODE_INIT_PORT_FORMAT, initPort));


+ 4
- 2
source/manager/ump-model/src/main/java/com/jd/blockchain/ump/model/PeerSharedConfigs.java View File

@@ -139,13 +139,15 @@ public class PeerSharedConfigs {
}
}

public synchronized LedgerInitConfig ledgerInitConfig(String seed, String createTime) {
public synchronized LedgerInitConfig ledgerInitConfig(String seed, String createTime,
List<String> securityConfigs, List<String> partiRoleConfigs) {
if (ledgerInitConfig != null) {
return ledgerInitConfig;
}

// 处理该ledgerInitConfig
ledgerInitConfig = new LedgerInitConfig(seed, ledgerName, createTime, consensusProvider, waitNodeSize);
ledgerInitConfig = new LedgerInitConfig(seed, ledgerName, createTime, consensusProvider, waitNodeSize,
securityConfigs, partiRoleConfigs);

// 添加参与方
for (int i = 0; i < sharedConfigs.size(); i++) {


+ 6
- 0
source/manager/ump-model/src/main/java/com/jd/blockchain/ump/model/UmpConstant.java View File

@@ -60,6 +60,12 @@ public class UmpConstant {

public static final String SECURITY_ROLES_PRIVILEGES_TX_FORMAT = SECURITY_ROLES + ".%s.tx-privileges";

public static final String SECURITY_PARTI_PREFIX = "participant.default";

public static final String SECURITY_PARTI_ROLES = SECURITY_PARTI_PREFIX + ".roles";

public static final String SECURITY_PARTI_ROLES_POLICY = SECURITY_PARTI_PREFIX + ".roles-policy";

public static final String CRYPTO_PREFIX = "crypto";

public static final String CRYPTO_HASH_VERIFY = CRYPTO_PREFIX + ".verify-hash";


+ 11
- 2
source/manager/ump-model/src/main/java/com/jd/blockchain/ump/model/config/LedgerInitConfig.java View File

@@ -22,18 +22,25 @@ public class LedgerInitConfig {
"com.jd.blockchain.crypto.service.classic.ClassicCryptoService, " +
"com.jd.blockchain.crypto.service.sm.SMCryptoService";

List<String> securityConfigs = null;

List<String> partiRolesConfigs = null;


private List<PartiNode> partiNodes = new ArrayList<>();

public LedgerInitConfig() {
}

public LedgerInitConfig(String seed, String name, String createTime, String consensusProvider, int nodeSize) {
public LedgerInitConfig(String seed, String name, String createTime, String consensusProvider, int nodeSize,
List<String> securityConfigs, List<String> partiRolesConfigs) {
this.seed = seed;
this.name = name;
this.createTime = createTime;
this.consensusProvider = consensusProvider;
this.nodeSize = nodeSize;
this.securityConfigs = securityConfigs;
this.partiRolesConfigs = partiRolesConfigs;
}

public List<String> toConfigChars(String consensusConf) {
@@ -54,8 +61,10 @@ public class LedgerInitConfig {

configChars.add(toConfigChars(UmpConstant.PARTINODE_COUNT, partiNodes.size()));

configChars.addAll(securityConfigs);

for (PartiNode partiNode : partiNodes) {
configChars.addAll(partiNode.toConfigChars());
configChars.addAll(partiNode.toConfigChars(this.partiRolesConfigs));
}

return configChars;


+ 2
- 0
source/manager/ump-service/src/main/java/com/jd/blockchain/ump/service/SecurityService.java View File

@@ -6,5 +6,7 @@ public interface SecurityService {

List<String> securityConfigs();

List<String> participantRoleConfigs();

void init();
}

+ 15
- 0
source/manager/ump-service/src/main/java/com/jd/blockchain/ump/service/SecurityServiceHandler.java View File

@@ -16,6 +16,8 @@ public class SecurityServiceHandler implements SecurityService {

private List<String> securityConfigs = new ArrayList<>();

private List<String> participantRoleConfigs = new ArrayList<>();

public SecurityServiceHandler() {
init();
}
@@ -25,6 +27,11 @@ public class SecurityServiceHandler implements SecurityService {
return securityConfigs;
}

@Override
public List<String> participantRoleConfigs() {
return participantRoleConfigs;
}

@Override
public void init() {
try {
@@ -62,6 +69,14 @@ public class SecurityServiceHandler implements SecurityService {
String roleTxValue = currentProps.getProperty(roleTxKey, "");
securityConfigs.add(propBuild(roleTxKey, roleTxValue));
}

// 将参与方信息写入
String partiRolesValue = currentProps.getProperty(UmpConstant.SECURITY_PARTI_ROLES, "");
String partiRolesPolicyValue = currentProps.getProperty(UmpConstant.SECURITY_PARTI_ROLES_POLICY, "");

participantRoleConfigs.add(propBuild(UmpConstant.SECURITY_PARTI_ROLES, partiRolesValue));
participantRoleConfigs.add(propBuild(UmpConstant.SECURITY_PARTI_ROLES_POLICY, partiRolesPolicyValue));

} else {
throw new IllegalStateException("Can not find Properties from security.config");
}


+ 5
- 1
source/manager/ump-service/src/main/java/com/jd/blockchain/ump/service/UmpServiceHandler.java View File

@@ -60,6 +60,9 @@ public class UmpServiceHandler implements UmpService {
@Autowired
private UmpStateService umpStateService;

@Autowired
private SecurityService securityService;

@Override
public synchronized PeerSharedConfigs loadPeerSharedConfigs(PeerLocalConfig sharedConfig) {

@@ -117,7 +120,8 @@ public class UmpServiceHandler implements UmpService {

// 所有数据到达之后生成返回的应答
LedgerInitConfig initConfig = sharedConfigs.ledgerInitConfig(
ledgerService.randomSeed(), ledgerService.currentCreateTime());
ledgerService.randomSeed(), ledgerService.currentCreateTime(),
securityService.securityConfigs(), securityService.participantRoleConfigs());

// 生成共识文件
String consensusConfig = consensusService.initConsensusConf(


+ 5
- 1
source/manager/ump-service/src/main/resources/security.config View File

@@ -14,4 +14,8 @@ security.role.MANAGER.tx-privileges=DIRECT_OPERATION, CONTRACT_OPERATION

security.role.GUEST.ledger-privileges=

security.role.GUEST.tx-privileges=CONTRACT_OPERATION
security.role.GUEST.tx-privileges=CONTRACT_OPERATION

participant.default.roles=ADMIN, MANAGER

participant.default.roles-policy=UNION

Loading…
Cancel
Save