├── .gitignore ├── README.md ├── build.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src └── main ├── java └── group │ └── uchain │ └── oilsupplychain │ ├── OilSupplyChainApplication.java │ ├── annotation │ ├── Pass.java │ └── RoleRequired.java │ ├── aspect │ ├── ControllerLogger.java │ ├── GlobalExceptionHandler.java │ └── ServiceLog.java │ ├── config │ ├── RedisConfig.java │ ├── SwaggerConfiguration.java │ ├── WebConfig.java │ └── WebSecurityConfig.java │ ├── controller │ ├── AnonController.java │ ├── InfoController.java │ ├── InnerController.java │ └── PublicController.java │ ├── dto │ ├── ApplyDTO.java │ ├── ReceiveDTO.java │ ├── SellDTO.java │ ├── SendDTO.java │ ├── TransportationApplyDTO.java │ ├── TransportationDTO.java │ ├── User.java │ └── package-info.java │ ├── dto2 │ ├── ChainApplyDTO.java │ ├── ChainReceiveDTO.java │ ├── ChainSellDTO.java │ ├── ChainSendDTO.java │ ├── ChainTransUserDTO.java │ ├── ChainTransportationApplyDTO.java │ ├── ChainTransportationDTO.java │ ├── ChainUserDTO.java │ └── package-info.java │ ├── enums │ ├── CodeMsg.java │ ├── EmailStatus.java │ ├── RoleEnum.java │ └── UserEnum.java │ ├── exception │ └── OilException.java │ ├── fabric │ ├── ChaincodeManager.java │ ├── FabricConfig.java │ ├── FabricOrg.java │ ├── FabricStore.java │ ├── FabricUser.java │ └── bean │ │ ├── Chaincode.java │ │ ├── Orderers.java │ │ └── Peers.java │ ├── form │ └── OrderForm.java │ ├── interceptor │ └── AuthorityInterceptor.java │ ├── mapper │ ├── InfoMapper.java │ ├── OrderFormMapper.java │ ├── UserFormMapper.java │ └── UtilMapper.java │ ├── redis │ ├── FastJson2JsonRedisSerializer.java │ ├── RedisModelMap.java │ ├── RedisTemplate.java │ ├── RedisUtil.java │ └── key │ │ ├── BasePrefix.java │ │ ├── KeyStrategy.java │ │ ├── ModelKey.java │ │ └── UserKey.java │ ├── result │ └── Result.java │ ├── security │ ├── JwtAuthenticationEntryPoint.java │ ├── JwtAuthenticationTokenFilter.java │ ├── JwtTokenUtil.java │ ├── JwtUser.java │ └── handler │ │ └── AuthenticationFailureHandler.java │ ├── service │ ├── LoginService.java │ ├── UserService.java │ └── impl │ │ ├── ActionService.java │ │ ├── BatchNumberService.java │ │ ├── InfoService.java │ │ ├── JwtUserDetailsServiceImpl.java │ │ ├── LoginServiceImpl.java │ │ ├── MailService.java │ │ ├── TaskService.java │ │ ├── TypeChangeService.java │ │ └── UserServiceImpl.java │ ├── utils │ ├── BatchNumberUtil.java │ ├── FabricManagerMethod.java │ ├── FabricMethod.java │ ├── IDUtil.java │ ├── RoleChangeUtil.java │ └── StatusUtil.java │ └── vo │ ├── ApplyOrdersVO.java │ ├── OrdersVO.java │ └── ViewUser.java └── resources ├── application.yml ├── config └── generatorConfig.xml ├── fabric ├── channel-artifacts │ ├── genesis.block │ └── mychannel.tx └── crypto-config │ ├── ordererOrganizations │ └── example.com │ │ ├── ca │ │ ├── 66979f1557a129badab03b68ef8ae435efe701a07908dff2ebbf03ab70df3cd3_sk │ │ └── ca.example.com-cert.pem │ │ ├── msp │ │ ├── admincerts │ │ │ └── Admin@example.com-cert.pem │ │ ├── cacerts │ │ │ └── ca.example.com-cert.pem │ │ └── tlscacerts │ │ │ └── tlsca.example.com-cert.pem │ │ ├── orderers │ │ └── orderer.example.com │ │ │ ├── msp │ │ │ ├── admincerts │ │ │ │ └── Admin@example.com-cert.pem │ │ │ ├── cacerts │ │ │ │ └── ca.example.com-cert.pem │ │ │ ├── keystore │ │ │ │ └── 1782fc3bda29d27fb683126586882a18e92d79ef8832fd7cd5406a5679c87b31_sk │ │ │ ├── signcerts │ │ │ │ └── orderer.example.com-cert.pem │ │ │ └── tlscacerts │ │ │ │ └── tlsca.example.com-cert.pem │ │ │ └── tls │ │ │ ├── ca.crt │ │ │ ├── server.crt │ │ │ └── server.key │ │ ├── tlsca │ │ ├── 318f1d70e96de53845ac5d4d99ad17e3de47c0bf8b4587501e90b61eca954a56_sk │ │ └── tlsca.example.com-cert.pem │ │ └── users │ │ └── Admin@example.com │ │ ├── msp │ │ ├── admincerts │ │ │ └── Admin@example.com-cert.pem │ │ ├── cacerts │ │ │ └── ca.example.com-cert.pem │ │ ├── keystore │ │ │ └── a48a0fbbf5cdd7e0faf954ca03823483b6b4e7d7991be330d6fa49bf8da386ac_sk │ │ ├── signcerts │ │ │ └── Admin@example.com-cert.pem │ │ └── tlscacerts │ │ │ └── tlsca.example.com-cert.pem │ │ └── tls │ │ ├── ca.crt │ │ ├── client.crt │ │ └── client.key │ └── peerOrganizations │ ├── org1.example.com │ ├── ca │ │ ├── ca.org1.example.com-cert.pem │ │ └── d5503623a4b80c456159e292af7cec09d33151ad30436d22c8120ba5bdd67f80_sk │ ├── msp │ │ ├── admincerts │ │ │ └── Admin@org1.example.com-cert.pem │ │ ├── cacerts │ │ │ └── ca.org1.example.com-cert.pem │ │ ├── config.yaml │ │ └── tlscacerts │ │ │ └── tlsca.org1.example.com-cert.pem │ ├── peers │ │ ├── peer0.org1.example.com │ │ │ ├── msp │ │ │ │ ├── admincerts │ │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ │ ├── cacerts │ │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ │ ├── config.yaml │ │ │ │ ├── keystore │ │ │ │ │ └── 23514f7487dfda568dd7847fed648ef40ac209802fb385f806ceb33c1721b7f0_sk │ │ │ │ ├── signcerts │ │ │ │ │ └── peer0.org1.example.com-cert.pem │ │ │ │ └── tlscacerts │ │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ └── tls │ │ │ │ ├── ca.crt │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ └── peer1.org1.example.com │ │ │ ├── msp │ │ │ ├── admincerts │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ ├── cacerts │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ ├── config.yaml │ │ │ ├── keystore │ │ │ │ └── 535cf6c48f2857b56e03b26ca5e839965485a600b467f83f53ae0361558e6601_sk │ │ │ ├── signcerts │ │ │ │ └── peer1.org1.example.com-cert.pem │ │ │ └── tlscacerts │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ │ └── tls │ │ │ ├── ca.crt │ │ │ ├── server.crt │ │ │ └── server.key │ ├── tlsca │ │ ├── 7dcb11a0750d326b39c6c4de96c9808c3fd30f716bc4d525de22792c3b12c96c_sk │ │ └── tlsca.org1.example.com-cert.pem │ └── users │ │ ├── Admin@org1.example.com │ │ ├── msp │ │ │ ├── admincerts │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ ├── cacerts │ │ │ │ └── ca.org1.example.com-cert.pem │ │ │ ├── keystore │ │ │ │ └── 9fd52ec8036737bfac8982181c7a16fee300c814e14a76d2996ef716e2d7b02e_sk │ │ │ ├── signcerts │ │ │ │ └── Admin@org1.example.com-cert.pem │ │ │ └── tlscacerts │ │ │ │ └── tlsca.org1.example.com-cert.pem │ │ └── tls │ │ │ ├── ca.crt │ │ │ ├── client.crt │ │ │ └── client.key │ │ └── User1@org1.example.com │ │ ├── msp │ │ ├── admincerts │ │ │ └── User1@org1.example.com-cert.pem │ │ ├── cacerts │ │ │ └── ca.org1.example.com-cert.pem │ │ ├── keystore │ │ │ └── a4bb9353605d18335cfe948b070087e78e5ab85a672de997249f49e93469167a_sk │ │ ├── signcerts │ │ │ └── User1@org1.example.com-cert.pem │ │ └── tlscacerts │ │ │ └── tlsca.org1.example.com-cert.pem │ │ └── tls │ │ ├── ca.crt │ │ ├── client.crt │ │ └── client.key │ └── org2.example.com │ ├── ca │ ├── 4d05525decf984c650fc68d627810871259b0cf854f73b29968794be6921a7e9_sk │ └── ca.org2.example.com-cert.pem │ ├── msp │ ├── admincerts │ │ └── Admin@org2.example.com-cert.pem │ ├── cacerts │ │ └── ca.org2.example.com-cert.pem │ ├── config.yaml │ └── tlscacerts │ │ └── tlsca.org2.example.com-cert.pem │ ├── peers │ ├── peer0.org2.example.com │ │ ├── msp │ │ │ ├── admincerts │ │ │ │ └── Admin@org2.example.com-cert.pem │ │ │ ├── cacerts │ │ │ │ └── ca.org2.example.com-cert.pem │ │ │ ├── config.yaml │ │ │ ├── keystore │ │ │ │ └── b2d760c0e24deb2c081df22b98cdaaa72166fe24f2a0d7394a767264af5bfa86_sk │ │ │ ├── signcerts │ │ │ │ └── peer0.org2.example.com-cert.pem │ │ │ └── tlscacerts │ │ │ │ └── tlsca.org2.example.com-cert.pem │ │ └── tls │ │ │ ├── ca.crt │ │ │ ├── server.crt │ │ │ └── server.key │ └── peer1.org2.example.com │ │ ├── msp │ │ ├── admincerts │ │ │ └── Admin@org2.example.com-cert.pem │ │ ├── cacerts │ │ │ └── ca.org2.example.com-cert.pem │ │ ├── config.yaml │ │ ├── keystore │ │ │ └── 325d30b1dcbe1c7a580807d73a4dda360de808d74f0d80ea48531c8c45311466_sk │ │ ├── signcerts │ │ │ └── peer1.org2.example.com-cert.pem │ │ └── tlscacerts │ │ │ └── tlsca.org2.example.com-cert.pem │ │ └── tls │ │ ├── ca.crt │ │ ├── server.crt │ │ └── server.key │ ├── tlsca │ ├── 37bc21c2174e19d29da30f5931097e62dceda87690d3f9c14daea42a864a39d7_sk │ └── tlsca.org2.example.com-cert.pem │ └── users │ ├── Admin@org2.example.com │ ├── msp │ │ ├── admincerts │ │ │ └── Admin@org2.example.com-cert.pem │ │ ├── cacerts │ │ │ └── ca.org2.example.com-cert.pem │ │ ├── keystore │ │ │ └── 6b95a64d83a9a9181a58cd9524b2e198dad6bd558396cf70b2b48473200f6a45_sk │ │ ├── signcerts │ │ │ └── Admin@org2.example.com-cert.pem │ │ └── tlscacerts │ │ │ └── tlsca.org2.example.com-cert.pem │ └── tls │ │ ├── ca.crt │ │ ├── client.crt │ │ └── client.key │ └── User1@org2.example.com │ ├── msp │ ├── admincerts │ │ └── User1@org2.example.com-cert.pem │ ├── cacerts │ │ └── ca.org2.example.com-cert.pem │ ├── keystore │ │ └── a192c3dc0f2d57c90b7298b443cb5bad1197cb27e176379ce3d764d193d216c2_sk │ ├── signcerts │ │ └── User1@org2.example.com-cert.pem │ └── tlscacerts │ │ └── tlsca.org2.example.com-cert.pem │ └── tls │ ├── ca.crt │ ├── client.crt │ └── client.key ├── mapper ├── InfoMapper.xml ├── OrderFormMapper.xml ├── UserFormMapper.xml └── UtilMapper.xml ├── picture ├── 图片1.png └── 图片3.png ├── redis.properties └── static └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | /build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | 6 | ### STS ### 7 | .apt_generated 8 | .classpath 9 | .factorypath 10 | .project 11 | .settings 12 | .springBeans 13 | .sts4-cache 14 | 15 | ### IntelliJ IDEA ### 16 | .idea 17 | *.iws 18 | *.iml 19 | *.ipr 20 | /out/ 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | 29 | ### VS Code ### 30 | .vscode/ 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 石油供应链 oil-supply-chain 2 | * 基于区块链3.0的fabric的石油信息管理系统 3 | * 区块链的特点 4 | * 去中心化 5 | * 去信任化 6 | * 数据共享 7 | * 不可篡改 8 | * 不同于不可修改,指发起一笔交易后不能单方面撤销交易,如果需要撤销之前的交易必须再花几笔交易告诉全网我需要撤销之前的交易. 9 | ## 使用的技术栈 10 | * Mybatis+fabric-sdk+springboot+redis 11 | 12 | ## 运行环境 13 | OS:centos7 14 | Web容器:Tomcat 15 | 数据库:Mysql 16 | Couchdb 17 | 开发基础框架:Springboot 18 | 联盟链:fabric 19 | 合约开发:go 20 | Fabric SDK: 21 | 前端:vue.js + element-ui(模板)+ 阿里的icon-font(图标) 22 | 23 | ----- 24 | 25 | ## 系统结构设计及子系统划分 26 | 27 | [![3H8L8O.png](https://s2.ax1x.com/2020/03/05/3H8L8O.png)](https://imgchr.com/i/3H8L8O) 28 | 29 | 30 | 31 | ## 系统内部详细划分 32 | 33 | [![3HGZrj.png](https://s2.ax1x.com/2020/03/05/3HGZrj.png)](https://imgchr.com/i/3HGZrj) 34 | 35 | ## 主要存在的问题 36 | 1.区块链和后端的对接问题 37 | >后端和区块链进度不一致,区块链网络节点对接不上 38 | 39 | **解决方案**:使用Docker容器进行本地网络节点搭建,并部署测试链码。保证对接的可用性。 40 | 41 | ## 页面展示 42 | ![登录界面](https://github.com/Panghu98/oil-supply-chain/blob/master/src/main/resources/picture/%E5%9B%BE%E7%89%871.png) 43 | 44 | ![操作界面](https://github.com/Panghu98/oil-supply-chain/blob/master/src/main/resources/picture/%E5%9B%BE%E7%89%873.png) 45 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'org.springframework.boot' version '2.1.3.RELEASE' 3 | id 'java' 4 | } 5 | 6 | apply plugin: 'io.spring.dependency-management' 7 | 8 | group = 'com.example' 9 | version = '0.0.1-SNAPSHOT' 10 | sourceCompatibility = '1.8' 11 | 12 | repositories { 13 | maven { 14 | url 'http://maven.aliyun.com/nexus/content/groups/public/' 15 | } 16 | } 17 | dependencies { 18 | compile 'org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2' 19 | compile 'org.springframework.boot:spring-boot-starter-security:1.5.10.RELEASE' 20 | compile 'org.springframework.security:spring-security-config:5.1.4.RELEASE' 21 | compile 'org.springframework.boot:spring-boot-configuration-processor:2.1.3.RELEASE' 22 | compile 'org.projectlombok:lombok:1.18.8' 23 | compile("org.springframework.mobile:spring-mobile-device:1.1.5.RELEASE") 24 | annotationProcessor "org.projectlombok:lombok:1.18.8" 25 | compile("org.hyperledger.fabric-sdk-java:fabric-sdk-java:1.4.0") 26 | compile 'com.alibaba:fastjson:1.2.49' 27 | compile 'org.apache.commons:commons-lang3:3.7' 28 | compile 'io.springfox:springfox-swagger2:2.8.0' 29 | compile 'io.springfox:springfox-swagger-ui:2.8.0' 30 | compile 'org.springframework.boot:spring-boot-starter-aop:2.1.3.RELEASE' 31 | compile 'org.springframework:spring-tx:5.1.5.RELEASE' 32 | compile 'org.mybatis:mybatis:3.4.2' 33 | compile 'org.springframework:spring-context-support:5.1.5.RELEASE' 34 | compile 'javax.mail:javax.mail-api:1.6.2' 35 | compile 'io.jsonwebtoken:jjwt:0.9.0' 36 | testCompile 'org.springframework.boot:spring-boot-starter-test:2.1.3.RELEASE' 37 | compile 'org.springframework.boot:spring-boot-starter-mail:2.1.2.RELEASE' 38 | compile 'org.springframework.boot:spring-boot-configuration-processor:2.1.2.RELEASE' 39 | compile 'com.alibaba:fastjson:1.2.47' 40 | compile 'org.springframework.boot:spring-boot-starter-web:2.1.2.RELEASE' 41 | compile 'org.springframework.boot:spring-boot-starter-security:2.1.2.RELEASE' 42 | compile 'org.springframework.security:spring-security-config:5.1.3.RELEASE' 43 | compile 'org.springframework.boot:spring-boot-starter-hateoas:2.1.2.RELEASE' 44 | compile 'io.jsonwebtoken:jjwt:0.7.0' 45 | compile 'org.projectlombok:lombok:1.18.4' 46 | compile 'org.springframework.boot:spring-boot-starter-aop:2.1.2.RELEASE' 47 | compile 'org.springframework.boot:spring-boot-starter-jdbc:2.1.2.RELEASE' 48 | compile 'org.springframework:spring-context:5.1.5.RELEASE' 49 | compile 'org.apache.commons:commons-pool2:2.6.0' 50 | compile 'redis.clients:jedis:2.9.0' 51 | compile 'org.junit.jupiter:junit-jupiter-api:5.3.1' 52 | compile 'junit:junit:4.12' 53 | compile 'org.springframework:spring-test:5.1.5.RELEASE' 54 | runtime 'mysql:mysql-connector-java:8.0.11' 55 | compile 'org.springframework:spring-webmvc:5.1.6.RELEASE' 56 | compile 'redis.clients:jedis:2.9.0' 57 | compile 'org.springframework.boot:spring-boot-starter-data-redis:2.1.2.RELEASE' 58 | 59 | 60 | } 61 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Panghu98/oil-supply-chain/6f37680a1b41d315c42f902cd7ebd9fd06e83cef/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS="-Xmx64m" 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | 53 | :win9xME_args 54 | @rem Slurp the command line arguments. 55 | set CMD_LINE_ARGS= 56 | set _SKIP=2 57 | 58 | :win9xME_args_slurp 59 | if "x%~1" == "x" goto execute 60 | 61 | set CMD_LINE_ARGS=%* 62 | 63 | :execute 64 | @rem Setup the command line 65 | 66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 67 | 68 | @rem Execute Gradle 69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 70 | 71 | :end 72 | @rem End local scope for the variables with windows NT shell 73 | if "%ERRORLEVEL%"=="0" goto mainEnd 74 | 75 | :fail 76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 77 | rem the _cmd.exe /c_ return code! 78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 79 | exit /b 1 80 | 81 | :mainEnd 82 | if "%OS%"=="Windows_NT" endlocal 83 | 84 | :omega 85 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | gradlePluginPortal() 4 | } 5 | } 6 | rootProject.name = 'test' 7 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/OilSupplyChainApplication.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.cache.annotation.EnableCaching; 7 | import org.springframework.scheduling.annotation.EnableScheduling; 8 | 9 | /** 10 | * @author panghu 11 | */ 12 | @EnableCaching 13 | @EnableScheduling 14 | @MapperScan("group.uchain.oilsupplychain.mapper") 15 | @SpringBootApplication 16 | public class OilSupplyChainApplication { 17 | 18 | public static void main(String[] args) { 19 | SpringApplication.run(OilSupplyChainApplication.class, args); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/annotation/Pass.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 用户记录接口测试是否成功 10 | * @author panghu 11 | * @title: Pass 12 | * @projectName demo 13 | * @date 19-5-5 上午10:18 14 | */ 15 | @Target(ElementType.METHOD) 16 | @Retention(RetentionPolicy.SOURCE) 17 | public @interface Pass { 18 | 19 | String value() default ""; 20 | 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/annotation/RoleRequired.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.annotation; 2 | 3 | 4 | import group.uchain.oilsupplychain.enums.RoleEnum; 5 | 6 | import java.lang.annotation.ElementType; 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | import java.lang.annotation.Target; 10 | 11 | /** 12 | * @author dgh 13 | * @date 19-1-19 下午7:48 14 | * @Target 这里可以将对象设置为整个类,但是要对Interceptor中的捕捉对象进行修改 15 | */ 16 | @Target(ElementType.METHOD) 17 | @Retention(RetentionPolicy.RUNTIME) 18 | public @interface RoleRequired { 19 | RoleEnum value(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/aspect/ControllerLogger.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.aspect; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.aspectj.lang.JoinPoint; 5 | import org.aspectj.lang.Signature; 6 | import org.aspectj.lang.annotation.AfterReturning; 7 | import org.aspectj.lang.annotation.Aspect; 8 | import org.aspectj.lang.annotation.Before; 9 | import org.aspectj.lang.annotation.Pointcut; 10 | import org.springframework.stereotype.Component; 11 | 12 | /** 13 | * @author panghu 14 | * @Title: ControllerLogger 15 | * @ProjectName oil-supply-chain 16 | * @Description: TODO 17 | * @date 19-2-24 下午3:31 18 | */ 19 | @Aspect 20 | @Component 21 | @Slf4j 22 | public class ControllerLogger { 23 | @Pointcut("execution(public * group.uchain.oilsupplychain.controller.*.*(..))") 24 | public void service() { 25 | 26 | } 27 | 28 | @Before("service()") 29 | public void before(JoinPoint joinPoint) { 30 | Signature signature = joinPoint.getSignature(); 31 | String method = signature.getDeclaringTypeName() + "." + signature.getName(); 32 | log.info("-------------------------------"); 33 | log.info("执行Service方法 : " + method); 34 | Object[] args = joinPoint.getArgs(); 35 | for (Object arg : args) { 36 | log.info("参数: " + arg); 37 | } 38 | log.info("-------------------------------"); 39 | } 40 | 41 | @AfterReturning(pointcut = "service()", returning = "result") 42 | public void afterReturn(Object result) { 43 | log.info("--------------------------"); 44 | log.info("返回参数 : " + result); 45 | log.info("-------------------------"); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/aspect/GlobalExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.aspect; 2 | 3 | import group.uchain.oilsupplychain.enums.CodeMsg; 4 | import group.uchain.oilsupplychain.exception.OilException; 5 | import group.uchain.oilsupplychain.result.Result; 6 | import lombok.extern.slf4j.Slf4j; 7 | import org.aspectj.lang.annotation.Aspect; 8 | import org.springframework.web.bind.annotation.ControllerAdvice; 9 | import org.springframework.web.bind.annotation.ExceptionHandler; 10 | import org.springframework.web.bind.annotation.ResponseBody; 11 | import org.springframework.web.bind.annotation.RestController; 12 | 13 | import java.sql.SQLException; 14 | 15 | /** 16 | * @author panghu 17 | * @title: GlobalExceptionHandler 18 | * @projectName oil-supply-chain 19 | * @date 19-4-7 下午5:28 20 | */ 21 | @Slf4j 22 | @ControllerAdvice 23 | public class GlobalExceptionHandler { 24 | 25 | private final static String EXCEPTION_MSG_KEY = "Exception message : "; 26 | 27 | @ResponseBody 28 | @ExceptionHandler(OilException.class) 29 | public Result handleOilException(Exception exception){ 30 | exception.printStackTrace(); 31 | log.error(EXCEPTION_MSG_KEY+exception.getMessage()); 32 | return Result.error(exception.getMessage()); 33 | } 34 | 35 | @ResponseBody 36 | @ExceptionHandler(SQLException.class) 37 | public Result handleSQLException(SQLException exception){ 38 | exception.printStackTrace(); 39 | log.error(EXCEPTION_MSG_KEY+exception.getMessage()); 40 | return Result.error(CodeMsg.DATABASE_ERROR); 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/aspect/ServiceLog.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.aspect; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.aspectj.lang.JoinPoint; 5 | import org.aspectj.lang.Signature; 6 | import org.aspectj.lang.annotation.AfterReturning; 7 | import org.aspectj.lang.annotation.Aspect; 8 | import org.aspectj.lang.annotation.Before; 9 | import org.aspectj.lang.annotation.Pointcut; 10 | import org.springframework.stereotype.Component; 11 | 12 | /** 13 | * service层日志 14 | * @author clf 15 | */ 16 | @Aspect 17 | @Component 18 | @Slf4j 19 | public class ServiceLog { 20 | 21 | @Pointcut("execution(public * group.uchain.oilsupplychain.service.*.*(..))") 22 | public void service(){ 23 | } 24 | 25 | @Before("service()") 26 | public void before(JoinPoint joinPoint){ 27 | Signature signature = joinPoint.getSignature(); 28 | String method = signature.getDeclaringTypeName()+"."+signature.getName(); 29 | log.info("-----------------------------------------------------"); 30 | log.info("当前执行的service方法:"+method); 31 | Object[] args = joinPoint.getArgs(); 32 | for (Object arg : args) { 33 | log.info("参数:"+arg); 34 | } 35 | } 36 | 37 | @AfterReturning(pointcut = "service()",returning = "ret") 38 | public void after(Object ret){ 39 | log.info("service返回参数:"+ret); 40 | log.info("-----------------------------------------------------"); 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/config/SwaggerConfiguration.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.format.FormatterRegistry; 6 | import org.springframework.http.converter.HttpMessageConverter; 7 | import org.springframework.validation.MessageCodesResolver; 8 | import org.springframework.validation.Validator; 9 | import org.springframework.web.method.support.HandlerMethodArgumentResolver; 10 | import org.springframework.web.method.support.HandlerMethodReturnValueHandler; 11 | import org.springframework.web.servlet.HandlerExceptionResolver; 12 | import org.springframework.web.servlet.config.annotation.*; 13 | import springfox.documentation.builders.ApiInfoBuilder; 14 | import springfox.documentation.builders.ParameterBuilder; 15 | import springfox.documentation.builders.PathSelectors; 16 | import springfox.documentation.builders.RequestHandlerSelectors; 17 | import springfox.documentation.schema.ModelRef; 18 | import springfox.documentation.service.ApiInfo; 19 | import springfox.documentation.service.Parameter; 20 | import springfox.documentation.spi.DocumentationType; 21 | import springfox.documentation.spring.web.plugins.Docket; 22 | import springfox.documentation.swagger2.annotations.EnableSwagger2; 23 | 24 | import java.util.ArrayList; 25 | import java.util.List; 26 | 27 | /** 28 | * @author cyg 29 | * @date 18-9-12 下午3:28 30 | **/ 31 | 32 | @Configuration 33 | @EnableSwagger2 34 | @EnableWebMvc 35 | public class SwaggerConfiguration implements WebMvcConfigurer { 36 | 37 | 38 | @Override 39 | public void addResourceHandlers(ResourceHandlerRegistry registry) { 40 | registry.addResourceHandler("swagger-ui.html") 41 | .addResourceLocations("classpath:/META-INF/resources/"); 42 | 43 | registry.addResourceHandler("/webjars/**") 44 | .addResourceLocations("classpath:/META-INF/resources/webjars/"); 45 | } 46 | 47 | 48 | @Bean 49 | public Docket createRestApi() { 50 | //添加head参数start 51 | ParameterBuilder token = new ParameterBuilder(); 52 | List pars = new ArrayList<>(); 53 | token.name("Authorization").description("token") 54 | .modelRef(new ModelRef("string")).parameterType("header") 55 | .required(false).build(); 56 | //根据每个方法名也知道当前方法在设置什么参数 57 | pars.add(token.build()); 58 | 59 | //添加head参数end 60 | return new Docket(DocumentationType.SWAGGER_2) 61 | .apiInfo(apiInfo()) 62 | .select() 63 | //指定接口的位置 64 | .apis(RequestHandlerSelectors.basePackage("group.uchain.oilsupplychain.controller")) 65 | .paths(PathSelectors.any()) 66 | .build() 67 | .globalOperationParameters(pars); 68 | } 69 | 70 | private ApiInfo apiInfo() { 71 | return new ApiInfoBuilder() 72 | .title("石油供应链") 73 | .description("API交互接口") 74 | .termsOfServiceUrl("") 75 | .version("1.0") 76 | .build(); 77 | } 78 | } 79 | 80 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/config/WebConfig.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.config; 2 | 3 | import group.uchain.oilsupplychain.interceptor.AuthorityInterceptor; 4 | import group.uchain.oilsupplychain.service.UserService; 5 | import group.uchain.oilsupplychain.service.impl.UserServiceImpl; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.context.annotation.Bean; 8 | import org.springframework.context.annotation.Configuration; 9 | import org.springframework.format.FormatterRegistry; 10 | import org.springframework.http.converter.HttpMessageConverter; 11 | import org.springframework.validation.MessageCodesResolver; 12 | import org.springframework.validation.Validator; 13 | import org.springframework.web.method.support.HandlerMethodArgumentResolver; 14 | import org.springframework.web.method.support.HandlerMethodReturnValueHandler; 15 | import org.springframework.web.servlet.HandlerExceptionResolver; 16 | import org.springframework.web.servlet.config.annotation.*; 17 | 18 | import java.util.List; 19 | 20 | /** 21 | * @author dgh 22 | * @date 19-1-19 下午8:11 23 | */ 24 | @Configuration 25 | public class WebConfig implements WebMvcConfigurer { 26 | 27 | @Bean 28 | public UserService userService() { 29 | return new UserServiceImpl(); 30 | } 31 | 32 | @Autowired 33 | private AuthorityInterceptor authorityInterceptor; 34 | 35 | @Override 36 | public void configurePathMatch(PathMatchConfigurer pathMatchConfigurer) { 37 | 38 | } 39 | 40 | @Override 41 | public void configureContentNegotiation(ContentNegotiationConfigurer contentNegotiationConfigurer) { 42 | 43 | } 44 | 45 | @Override 46 | public void configureAsyncSupport(AsyncSupportConfigurer asyncSupportConfigurer) { 47 | 48 | } 49 | 50 | @Override 51 | public void configureDefaultServletHandling(DefaultServletHandlerConfigurer defaultServletHandlerConfigurer) { 52 | 53 | } 54 | 55 | @Override 56 | public void addFormatters(FormatterRegistry formatterRegistry) { 57 | 58 | } 59 | 60 | /** 61 | * 在这个方法当中配置拦截器需要拦截的页面 62 | */ 63 | @Override 64 | public void addInterceptors(InterceptorRegistry registry) { 65 | registry.addInterceptor(authorityInterceptor).addPathPatterns("/**") 66 | //设置拦截器拦截的位置 67 | .excludePathPatterns(""); 68 | } 69 | 70 | 71 | @Override 72 | public MessageCodesResolver getMessageCodesResolver() { 73 | return null; 74 | } 75 | 76 | 77 | } 78 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/config/WebSecurityConfig.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.config; 2 | 3 | import group.uchain.oilsupplychain.security.JwtAuthenticationEntryPoint; 4 | import group.uchain.oilsupplychain.security.JwtAuthenticationTokenFilter; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.context.annotation.Bean; 7 | import org.springframework.context.annotation.Configuration; 8 | import org.springframework.http.HttpMethod; 9 | import org.springframework.security.authentication.AuthenticationManager; 10 | import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; 11 | import org.springframework.security.config.annotation.web.builders.HttpSecurity; 12 | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; 13 | import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; 14 | import org.springframework.security.config.http.SessionCreationPolicy; 15 | import org.springframework.security.core.userdetails.UserDetailsService; 16 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 17 | import org.springframework.security.crypto.password.PasswordEncoder; 18 | import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; 19 | 20 | 21 | /** 22 | * @author panghu 23 | */ 24 | @Configuration 25 | @EnableWebSecurity 26 | public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 27 | 28 | @Autowired 29 | private JwtAuthenticationEntryPoint unauthorizedHandler; 30 | 31 | @Autowired 32 | private UserDetailsService userDetailsService; 33 | 34 | @Autowired 35 | public void configureAuthentication(AuthenticationManagerBuilder authenticationManagerBuilder) throws Exception { 36 | authenticationManagerBuilder 37 | .userDetailsService(this.userDetailsService) 38 | .passwordEncoder(passwordEncoder()); 39 | } 40 | 41 | @Bean 42 | @Override 43 | public AuthenticationManager authenticationManagerBean() throws Exception { 44 | return super.authenticationManagerBean(); 45 | } 46 | 47 | 48 | 49 | @Bean 50 | public PasswordEncoder passwordEncoder() { 51 | return new BCryptPasswordEncoder(); 52 | } 53 | 54 | 55 | @Bean 56 | public JwtAuthenticationTokenFilter authenticationTokenFilterBean() { 57 | return new JwtAuthenticationTokenFilter(); 58 | } 59 | 60 | @Override 61 | protected void configure(HttpSecurity httpSecurity) throws Exception { 62 | httpSecurity 63 | //token的验证方式不需要开启csrf的防护 64 | .csrf().disable() 65 | .exceptionHandling().authenticationEntryPoint(unauthorizedHandler) 66 | .and() 67 | .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and() 68 | .authorizeRequests() 69 | .antMatchers( 70 | HttpMethod.GET, 71 | "/*", 72 | "/*.html", 73 | "/favicon.ico", 74 | "/**/*.html", 75 | "/**/*.css", 76 | "/**/*.js", 77 | "/swagger**", 78 | "/autoconfig", 79 | "/test/**", 80 | "/redis/**", 81 | "/v2/**", 82 | "/webjars/**" 83 | ).permitAll() 84 | .antMatchers( 85 | HttpMethod.POST, 86 | "/test/**", 87 | "/swagger**", 88 | "/anon/**", 89 | "/oil/login", 90 | "/getGoodsTypeList", 91 | "/redis/**").permitAll() 92 | .anyRequest().authenticated(); 93 | 94 | httpSecurity 95 | .addFilterBefore(authenticationTokenFilterBean(), UsernamePasswordAuthenticationFilter.class); 96 | 97 | httpSecurity.headers().cacheControl(); 98 | } 99 | } -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/controller/AnonController.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.controller; 2 | 3 | import group.uchain.oilsupplychain.exception.OilException; 4 | import group.uchain.oilsupplychain.result.Result; 5 | import group.uchain.oilsupplychain.service.LoginService; 6 | import io.swagger.annotations.Api; 7 | import io.swagger.annotations.ApiImplicitParam; 8 | import io.swagger.annotations.ApiImplicitParams; 9 | import io.swagger.annotations.ApiOperation; 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | import org.springframework.web.bind.annotation.*; 12 | import springfox.documentation.annotations.ApiIgnore; 13 | 14 | import java.sql.SQLException; 15 | import java.util.Map; 16 | 17 | /** 18 | * @author panghu 19 | * @Title: AnonController 20 | * @ProjectName oil-supply-chain 21 | * @Description: TODO 22 | * @date 19-3-11 下午2:52 23 | */ 24 | @RequestMapping("/anon") 25 | @Api(tags = "匿名接口") 26 | @CrossOrigin 27 | @RestController 28 | public class AnonController { 29 | 30 | private LoginService loginService; 31 | 32 | 33 | @Autowired 34 | public AnonController(LoginService loginService) { 35 | this.loginService = loginService; 36 | } 37 | 38 | @ApiOperation(value = "用户登录接口") 39 | @ApiImplicitParams({ 40 | @ApiImplicitParam(name = "username",value = "用户名",required = true), 41 | @ApiImplicitParam(name = "password",value = "密码",required = true) 42 | }) 43 | @PostMapping("/login") 44 | public Result login(String username, String password) { 45 | return loginService.login(username, password); 46 | } 47 | 48 | @ApiIgnore 49 | @GetMapping("/test") 50 | public void test(){ 51 | throw new OilException("测试"); 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/controller/InnerController.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.controller; 2 | 3 | import group.uchain.oilsupplychain.annotation.Pass; 4 | import group.uchain.oilsupplychain.dto2.ChainUserDTO; 5 | import group.uchain.oilsupplychain.mapper.OrderFormMapper; 6 | import group.uchain.oilsupplychain.utils.FabricMethod; 7 | import io.swagger.annotations.Api; 8 | import io.swagger.annotations.ApiOperation; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.scheduling.annotation.Scheduled; 11 | import org.springframework.web.bind.annotation.GetMapping; 12 | import org.springframework.web.bind.annotation.PostMapping; 13 | import org.springframework.web.bind.annotation.RequestMapping; 14 | import org.springframework.web.bind.annotation.RestController; 15 | import springfox.documentation.annotations.ApiIgnore; 16 | 17 | /** 18 | * @author panghu 19 | * @title: 内部测试方法接口 20 | * @projectName oil-supply-chain 21 | * @date 19-4-11 下午1:00 22 | */ 23 | @ApiIgnore 24 | @Api(tags = "测试接口") 25 | @RestController 26 | @RequestMapping("/inner") 27 | public class InnerController { 28 | 29 | @Autowired 30 | private OrderFormMapper orderFormMapper; 31 | 32 | @Pass 33 | @ApiIgnore 34 | @ApiOperation(value = "普通用户注册---区块链角色注册") 35 | @PostMapping("/userInit") 36 | public Object userInit(ChainUserDTO chainUserDTO){ 37 | Object res = FabricMethod.userInit(chainUserDTO); 38 | System.out.println(res); 39 | return res; 40 | } 41 | 42 | @Pass 43 | @ApiIgnore 44 | @ApiOperation(value="运输商注册---区块链角色注册") 45 | @PostMapping("/transUserInit") 46 | public Object transUserInit(String id,float railwayTrafficVolume,float pipeTrafficVolume,float seaTrafficVolume, 47 | float highwayTrafficVolume){ 48 | Object res = FabricMethod.transporterInit(id,railwayTrafficVolume,pipeTrafficVolume,seaTrafficVolume,highwayTrafficVolume); 49 | 50 | return res; 51 | } 52 | 53 | @GetMapping("/checkIdIsExist") 54 | public Integer checkIdIsExist(String id){ 55 | return orderFormMapper.checkIdIsExist(id); 56 | } 57 | 58 | @GetMapping("/checkOilRequestOrderAndOilHairOrder") 59 | public Object checkOilRequestOrderAndOilHairOrder(String batchNumber){ 60 | return FabricMethod.checkOilRequestOrderAndOilHairOrder(batchNumber); 61 | } 62 | 63 | @Pass 64 | @ApiOperation(value = "查询剩余储油量") 65 | @GetMapping("/queryOilReserve") 66 | public Object queryOilReserve(String id){ 67 | return FabricMethod.queryOilReserve(id); 68 | } 69 | 70 | 71 | /** 72 | * 增加油量 73 | * @param id 储油者ID 74 | * @param volume 增加的数量 单位 L 75 | * @return 76 | */ 77 | @GetMapping("/addOil") 78 | public Object addOil(String id,float volume){ 79 | return FabricMethod.addOilReserve(id,volume); 80 | } 81 | 82 | 83 | } 84 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/controller/PublicController.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.controller; 2 | 3 | import group.uchain.oilsupplychain.annotation.Pass; 4 | import group.uchain.oilsupplychain.annotation.RoleRequired; 5 | import group.uchain.oilsupplychain.dto.*; 6 | import group.uchain.oilsupplychain.enums.RoleEnum; 7 | import group.uchain.oilsupplychain.exception.OilException; 8 | import group.uchain.oilsupplychain.service.impl.ActionService; 9 | import group.uchain.oilsupplychain.service.impl.InfoService; 10 | import io.swagger.annotations.Api; 11 | import io.swagger.annotations.ApiOperation; 12 | import lombok.extern.slf4j.Slf4j; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import org.springframework.transaction.annotation.Transactional; 15 | import org.springframework.web.bind.annotation.*; 16 | import springfox.documentation.annotations.ApiIgnore; 17 | 18 | /** 19 | * @author panghu 20 | * @title: PublicController 21 | * @projectName oil-supply-chain 22 | * @date 19-4-6 下午3:43 23 | */ 24 | @Slf4j 25 | @CrossOrigin(origins = "*") 26 | @Api(tags = "数据操作") 27 | @RequestMapping("/action") 28 | @RestController 29 | @Transactional(rollbackFor = OilException.class) 30 | public class PublicController { 31 | 32 | private InfoService infoService; 33 | 34 | private ActionService actionService; 35 | 36 | @Autowired 37 | public PublicController(InfoService infoService,ActionService actionService) { 38 | this.infoService = infoService; 39 | this.actionService = actionService; 40 | } 41 | 42 | /*------------------------------------------------------------------------------------------------ 43 | ---------------------------------------上传订单的相关接口---------------------------------------- 44 | --------------------------------------------------------------------------------------------------*/ 45 | 46 | @Pass 47 | @ApiOperation(value = "上传申油单") 48 | @RoleRequired(value = RoleEnum.STATION_AND_DEPOT) 49 | @PostMapping("/apply") 50 | public Object apply(ApplyDTO applyDTO){ 51 | return actionService.uploadApplyOrder(applyDTO); 52 | } 53 | 54 | 55 | @ApiOperation(value = "上传发油单") 56 | @RoleRequired(value = RoleEnum.DEOPT_AND_REFINERY) 57 | @PostMapping("/send") 58 | public Object send(SendDTO sendDTO,String id){ 59 | return actionService.uploadSendOrder(sendDTO,id); 60 | } 61 | 62 | 63 | @RoleRequired(value = RoleEnum.DEOPT_AND_REFINERY) 64 | @ApiOperation(value = "上传运输申请单") 65 | @PostMapping("/transApply") 66 | public Object transApply(TransportationApplyDTO transportationApplyDTO,String id){ 67 | return actionService.uploadTransApplyOrder(transportationApplyDTO,id); 68 | } 69 | 70 | @ApiOperation(value = "上传运输单") 71 | @RoleRequired(value = RoleEnum.TRANSPORTATION_COMPANY) 72 | @PostMapping("/trans") 73 | public Object trans(TransportationDTO transportationDTO, String id){ 74 | return actionService.uploadTransOrder(transportationDTO,id); 75 | } 76 | 77 | 78 | @ApiOperation(value = "上传收油单") 79 | @RoleRequired(value = RoleEnum.STATION_AND_DEPOT) 80 | @PostMapping("/receive") 81 | public Object receive(ReceiveDTO receiveDTO, String id){ 82 | return actionService.uploadReceiveOrder(receiveDTO,id); 83 | } 84 | 85 | @ApiOperation(value = "上传销售单") 86 | @RoleRequired(value = RoleEnum.PETROL_STATION) 87 | @PostMapping("/sell") 88 | public Object sell(SellDTO sellDTO){ 89 | return actionService.uploadSellOrder(sellDTO); 90 | } 91 | 92 | 93 | /*------------------------------------------------------------------------------------------------ 94 | ---------------------------------------获取区块链核验结果 和 更改订单状态--------------------------- 95 | --------------------------------------------------------------------------------------------------*/ 96 | 97 | @Pass 98 | @ApiOperation(value = "获取系统油品申请订单审核详情") 99 | @GetMapping("/getApplyDetail") 100 | @RoleRequired(RoleEnum.DEOPT_AND_REFINERY) 101 | public Object checkRequestOrder(String batchNumber){ 102 | return actionService.getApplyDetail(batchNumber); 103 | } 104 | 105 | @ApiOperation(value = "获取系统运输申请订单审核详情") 106 | @GetMapping("/getTransApplyDetail") 107 | @RoleRequired(RoleEnum.TRANSPORTATION_COMPANY) 108 | public Object getTransApplyDetail(String batchNumber){ 109 | return actionService.getTransApplyDetail(batchNumber); 110 | } 111 | 112 | @ApiOperation(value = "更改待审核订单的状态") 113 | @RoleRequired(RoleEnum.DEPOT_REFINERY_TRANSPORTATION) 114 | @PostMapping("/updateStatus") 115 | public Object updateStatus(String id,String orderType,String status){ 116 | return infoService.updateApplyFormStatus(id,orderType,status); 117 | } 118 | 119 | } 120 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto/ApplyDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author panghu 7 | * @Title: ApplyDTO 8 | * @ProjectName oil-supply-chain 9 | * @Description: TODO 10 | * @date 19-4-3 下午7:14 11 | */ 12 | @Data 13 | public class ApplyDTO { 14 | 15 | 16 | /** 17 | * 油品品号 18 | */ 19 | private String variety; 20 | 21 | /** 22 | * 数量 23 | */ 24 | private String count; 25 | 26 | /** 27 | * 单位 28 | */ 29 | private String unit; 30 | 31 | /** 32 | * 发油单位 33 | */ 34 | private String sender; 35 | 36 | /** 37 | * 收油单位 38 | */ 39 | private String receiver; 40 | 41 | /** 42 | * 配送时间 43 | */ 44 | private String sendTime; 45 | 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto/ReceiveDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author panghu 7 | * @Title: ReceiveDTO 8 | * @ProjectName oil-supply-chain 9 | * @Description: TODO 10 | * @date 19-4-3 下午7:15 11 | */ 12 | @Data 13 | public class ReceiveDTO { 14 | 15 | 16 | /** 17 | * 油品状态 18 | */ 19 | private String oilStatus; 20 | 21 | /** 22 | * 抽样检测结果 23 | */ 24 | private String sampleStatus; 25 | 26 | private String certification; 27 | 28 | private String count; 29 | 30 | private String unit; 31 | 32 | private String variety; 33 | 34 | private String sender; 35 | 36 | private String receiver; 37 | 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto/SellDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author panghu 7 | * @title: SellDto 8 | * @projectName oil-supply-chain 9 | * @date 19-4-5 上午8:39 10 | */ 11 | @Data 12 | public class SellDTO { 13 | 14 | /** 15 | * 油品品号 16 | */ 17 | private String variety; 18 | 19 | /** 20 | * 交易升数 21 | */ 22 | private Double capacity; 23 | 24 | /** 25 | * 交易金额 26 | */ 27 | private Double money; 28 | 29 | /** 30 | * 单价 31 | */ 32 | private Double univalent; 33 | 34 | /** 35 | * 支付方式 36 | */ 37 | private String pay; 38 | 39 | 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto/SendDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * @author panghu 9 | * @Title: SendDTO 10 | * @ProjectName oil-supply-chain 11 | * @Description: TODO 12 | * @date 19-4-3 下午7:16 13 | */ 14 | @Data 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class SendDTO { 18 | 19 | 20 | /** 21 | * 油品种类 22 | */ 23 | private String variety; 24 | 25 | /** 26 | * 数量 27 | */ 28 | private String count; 29 | 30 | /** 31 | * 单位 32 | */ 33 | private String unit; 34 | 35 | /** 36 | * 抽样检测状态 37 | */ 38 | private String sampleStatus; 39 | 40 | /** 41 | * 产品合格证书 42 | */ 43 | private String certification; 44 | 45 | /** 46 | * 油品状态 47 | */ 48 | private Byte oilStatus; 49 | 50 | /** 51 | * 52 | */ 53 | private String sender; 54 | 55 | 56 | private String receiver; 57 | 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto/TransportationApplyDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author panghu 7 | * @Title: TransportationApplyDOT 8 | * @ProjectName oil-supply-chain 9 | * @Description: TODO 10 | * @date 19-4-3 下午7:16 11 | */ 12 | @Data 13 | public class TransportationApplyDTO { 14 | 15 | 16 | /** 17 | * 油品品号 柴油 18 | */ 19 | private String variety; 20 | 21 | /** 22 | * 运输公司 23 | */ 24 | private String company; 25 | 26 | /** 27 | * 产品发送者 28 | */ 29 | private String sender; 30 | 31 | /** 32 | * 产品接收者 33 | */ 34 | private String receiver; 35 | 36 | /** 37 | * 申请运输数量 38 | */ 39 | private String count; 40 | 41 | /** 42 | * 单位 43 | */ 44 | private String unit; 45 | 46 | /** 47 | * 配送时间 48 | */ 49 | String sendTime; 50 | 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto/TransportationDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author panghu 7 | * @Title: TransportationDOT 8 | * @ProjectName oil-supply-chain 9 | * @Description: TODO 10 | * @date 19-4-3 下午7:17 11 | */ 12 | @Data 13 | public class TransportationDTO { 14 | 15 | /** 16 | * 油品品号 17 | */ 18 | private String variety; 19 | 20 | /** 21 | * 油品数量 22 | */ 23 | private String count; 24 | 25 | /** 26 | * 单位 27 | */ 28 | private String unit; 29 | 30 | 31 | /** 32 | * 产品发送者 33 | */ 34 | private String sender; 35 | 36 | /** 37 | * 产品接收者 38 | */ 39 | private String receiver; 40 | 41 | /** 42 | * 运输公司 43 | */ 44 | private String company; 45 | 46 | /** 47 | * 运输设备编号 48 | */ 49 | private String equipmentNumber; 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto/User.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author panghu 7 | * @Title: User 8 | * @ProjectName oil-supply-chain 9 | * @Description: TODO 10 | * @date 19-3-13 下午1:01 11 | */ 12 | @Data 13 | public class User { 14 | 15 | private String id; 16 | private String username; 17 | private String password; 18 | /** 19 | * 1 炼油厂 ,2 省级油库,3运输公司,4地级市油库,5加油站 20 | */ 21 | private String role; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * @title: package-info 3 | * @projectName oil-supply-chain 4 | * @author panghu 5 | * @date 19-4-7 下午8:29 6 | * @Description: 前段传给后端的对象 7 | */ 8 | package group.uchain.oilsupplychain.dto; -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto2/ChainApplyDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto2; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import group.uchain.oilsupplychain.dto.ApplyDTO; 5 | import group.uchain.oilsupplychain.service.impl.TypeChangeService; 6 | import group.uchain.oilsupplychain.utils.BatchNumberUtil; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | 11 | /** 12 | * @author panghu 13 | * @Title: ApplyDTO 14 | * @ProjectName oil-supply-chain 15 | * @Description: TODO 16 | * @date 19-4-3 下午7:14 17 | */ 18 | @Data 19 | @NoArgsConstructor 20 | public class ChainApplyDTO { 21 | 22 | 23 | /** 24 | * 油品品号 25 | */ 26 | private String variety; 27 | 28 | /** 29 | * 数量 30 | */ 31 | private String count; 32 | 33 | /** 34 | * 发油单位 35 | */ 36 | private String sender; 37 | 38 | /** 39 | * 收油单位 40 | */ 41 | private String receiver; 42 | 43 | /** 44 | * 配送时间 45 | */ 46 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 47 | private String sendTime; 48 | 49 | /** 50 | * 批次号 51 | */ 52 | private String batchNumber; 53 | 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto2/ChainReceiveDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto2; 2 | 3 | import group.uchain.oilsupplychain.dto.ReceiveDTO; 4 | import group.uchain.oilsupplychain.service.UserService; 5 | import group.uchain.oilsupplychain.service.impl.TypeChangeService; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | 10 | /** 11 | * @author panghu 12 | * @Title: ReceiveDTO 13 | * @ProjectName oil-supply-chain 14 | * @Description: TODO 15 | * @date 19-4-3 下午7:15 16 | */ 17 | @NoArgsConstructor 18 | @Data 19 | public class ChainReceiveDTO { 20 | 21 | 22 | @Autowired 23 | private UserService userService; 24 | 25 | @Autowired 26 | private TypeChangeService typeChangeService; 27 | 28 | private String count; 29 | 30 | /** 31 | * 抽样检测结果 32 | */ 33 | private String sampleStatus; 34 | 35 | private String certification; 36 | 37 | private String variety; 38 | 39 | private String senderID; 40 | 41 | private String batchNumber; 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto2/ChainSellDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto2; 2 | 3 | import group.uchain.oilsupplychain.dto.SellDTO; 4 | import group.uchain.oilsupplychain.service.impl.TypeChangeService; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | 9 | /** 10 | * @author panghu 11 | * @title: SellDto 12 | * @projectName oil-supply-chain 13 | * @date 19-4-5 上午8:39 14 | */ 15 | @Data 16 | @NoArgsConstructor 17 | public class ChainSellDTO { 18 | 19 | 20 | 21 | /** 22 | * 售油者ID 23 | */ 24 | private String sellerId; 25 | /** 26 | * 油品品号 27 | */ 28 | private String variety; 29 | 30 | /** 31 | * 交易升数 32 | */ 33 | private Double capacity; 34 | 35 | /** 36 | * 交易金额 37 | */ 38 | private Double money; 39 | 40 | /** 41 | * 单价 42 | */ 43 | private Double univalent; 44 | 45 | /** 46 | * 支付方式 47 | */ 48 | private String pay; 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto2/ChainSendDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto2; 2 | 3 | import group.uchain.oilsupplychain.dto.SendDTO; 4 | import group.uchain.oilsupplychain.service.impl.TypeChangeService; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | 10 | /** 11 | * @author panghu 12 | * @Title: SendDTO 13 | * @ProjectName oil-supply-chain 14 | * @Description: TODO 15 | * @date 19-4-3 下午7:16 16 | */ 17 | @Data 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | public class ChainSendDTO { 21 | 22 | private String batchNumber; 23 | /** 24 | * 油品种类 25 | */ 26 | private String variety; 27 | 28 | /** 29 | * 数量 30 | */ 31 | private String count; 32 | 33 | /** 34 | * 抽样检测状态 35 | */ 36 | private String sampleStatus; 37 | 38 | /** 39 | * 产品合格证书 40 | */ 41 | private String certification; 42 | 43 | /** 44 | * 油品状态 45 | */ 46 | private Byte oilStatus; 47 | 48 | private String sender; 49 | 50 | private String receiver; 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto2/ChainTransUserDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto2; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author panghu 7 | * @title: ChainTransUserDTO 8 | * @projectName oil-supply-chain 9 | * @date 19-4-6 上午9:39 10 | */ 11 | @Data 12 | public class ChainTransUserDTO { 13 | 14 | private Integer id; 15 | 16 | private String railwayTrafficVolume; 17 | 18 | private String pipeTrafficVolume; 19 | 20 | private String seaTrafficVolume; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto2/ChainTransportationApplyDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto2; 2 | 3 | import group.uchain.oilsupplychain.dto.TransportationApplyDTO; 4 | import group.uchain.oilsupplychain.service.impl.TypeChangeService; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | 9 | /** 10 | * @author panghu 11 | * @Title: TransportationApplyDOT 12 | * @ProjectName oil-supply-chain 13 | * @Description: TODO 14 | * @date 19-4-3 下午7:16 15 | */ 16 | @Data 17 | @NoArgsConstructor 18 | public class ChainTransportationApplyDTO { 19 | 20 | 21 | /** 22 | * 油品品号 23 | */ 24 | private String variety; 25 | 26 | /** 27 | * 运输公司 28 | */ 29 | private String company; 30 | 31 | /** 32 | * 产品发送者 33 | */ 34 | private String sender; 35 | 36 | /** 37 | * 产品接收者 38 | */ 39 | private String receiver; 40 | 41 | /** 42 | * 申请运输数量 43 | */ 44 | private String count; 45 | 46 | /** 47 | * 批次号 48 | */ 49 | private String batchNumber; 50 | 51 | /** 52 | * 配送时间 53 | */ 54 | private String sendTime; 55 | 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto2/ChainTransportationDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto2; 2 | 3 | import group.uchain.oilsupplychain.dto.TransportationDTO; 4 | import group.uchain.oilsupplychain.service.impl.TypeChangeService; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | 9 | /** 10 | * @author panghu 11 | * @Title: TransportationDOT 12 | * @ProjectName oil-supply-chain 13 | * @Description: TODO 14 | * @date 19-4-3 下午7:17 15 | */ 16 | @NoArgsConstructor 17 | @Data 18 | public class ChainTransportationDTO { 19 | 20 | @Autowired 21 | private TypeChangeService typeChangeService; 22 | /** 23 | * 油品品号 24 | */ 25 | private String variety; 26 | 27 | /** 28 | * 油品数量 29 | */ 30 | private String count; 31 | 32 | /** 33 | * 产品发送者 34 | */ 35 | private String sender; 36 | 37 | /** 38 | * 产品接收者 39 | */ 40 | private String receiver; 41 | 42 | /** 43 | * 运输公司 44 | */ 45 | private String company; 46 | 47 | /** 48 | * 统一编号 49 | */ 50 | private String batchNumber; 51 | 52 | /** 53 | * 设备编号 54 | */ 55 | private String equipmentNumber; 56 | 57 | 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto2/ChainUserDTO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.dto2; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author panghu 7 | * @title: ChainUserDTO 8 | * @projectName oil-supply-chain 9 | * @date 19-4-6 上午9:23 10 | */ 11 | @Data 12 | public class ChainUserDTO { 13 | 14 | private Integer id; 15 | 16 | private String role; 17 | 18 | private String oilReserve1; 19 | 20 | private String oilReserve2; 21 | 22 | private String oilReserve3; 23 | 24 | private String oilReserve4; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/dto2/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * @title: package-info 3 | * @projectName oil-supply-chain 4 | * @author panghu 5 | * @Description: 后端传给区块链的对象 6 | * @date 19-4-7 下午8:28 7 | */ 8 | package group.uchain.oilsupplychain.dto2; -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/enums/CodeMsg.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | 7 | /** 8 | * @author panghu 9 | */ 10 | 11 | @Getter 12 | @AllArgsConstructor 13 | public enum CodeMsg { 14 | /***/ 15 | AUTHENTICATION_ERROR(401, "用户认证失败,请重新登录"), 16 | ORDER_NOT_EXIST(402, "订单不存在"), 17 | PERMISSION_DENNY(403, "权限不足"), 18 | USER_NOT_EXIST(404,"用户不存在"), 19 | UN_KNOWN_FABRIC_ERROR(500, "Fabric未知错误"), 20 | USER_ALREADY_EXIST(501,"用户已存在"), 21 | OIlORDER_ALREADY_EXIST(502,"订单已存在"), 22 | OIlORDER_NOT_EXIST(503,"订单不存在" ), 23 | BEEN_CHECKED(504,"订单已经审核"), 24 | DATABASE_ERROR(505,"数据库异常"), 25 | ORDER_NOT_ACCEPT(506,"订单核验未通过"); 26 | 27 | 28 | private Integer code; 29 | private String msg; 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/enums/EmailStatus.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.enums; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * @author panghu 7 | * @Title: Status 8 | * @ProjectName oil-supply-chain 9 | * @Description: TODO 10 | * @date 19-3-27 下午8:51 11 | */ 12 | @Getter 13 | public enum EmailStatus { 14 | 15 | /***/ 16 | REGISTER_YET("被占用","0"), 17 | OK("成功","1"), 18 | NOT_ACTIVE("未激活","2"); 19 | 20 | 21 | 22 | private String tips; 23 | 24 | private String msg; 25 | 26 | EmailStatus(String tips, String msg) { 27 | this.tips = tips; 28 | this.msg = msg; 29 | }} 30 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/enums/RoleEnum.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.enums; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * @author panghu 7 | * @Title: RoleEnum 8 | * @ProjectName oil-supply-chain 9 | * @Description: TODO 10 | * @date 19-2-24 下午5:01 11 | */ 12 | @Getter 13 | public enum RoleEnum { 14 | 15 | /***/ 16 | OIL_REFINERY(1, "炼油厂"), 17 | OIL_DEPOT(24,"油库"), 18 | TRANSPORTATION_COMPANY(3,"运输公司"), 19 | PETROL_STATION(5,"加油站"), 20 | DEOPT_AND_REFINERY(124,"炼油厂和油库"), 21 | STATION_AND_DEPOT(245,"加油站和油库"), 22 | DEPOT_REFINERY_TRANSPORTATION(1234,"炼油厂,油库,运输公司"); 23 | 24 | 25 | private Integer role; 26 | 27 | private String tips; 28 | 29 | RoleEnum(Integer role, String tips) { 30 | this.role = role; 31 | this.tips = tips; 32 | }} 33 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/enums/UserEnum.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.enums; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * @author panghu 7 | * @title: UserEnum 8 | * @projectName demo 9 | * @date 19-5-3 上午10:50 10 | */ 11 | @Getter 12 | public enum UserEnum { 13 | /***/ 14 | USER_REFINERY("Refinery_","炼油厂 1"), 15 | USER_OIL_DEOPT("OilDepoter_","油库 2和4"), 16 | USER_GAS_STATION("GasStation_","加油站 5") 17 | ; 18 | 19 | private String role; 20 | 21 | private String tip; 22 | 23 | UserEnum(String role, String tip) { 24 | this.role = role; 25 | this.tip = tip; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/exception/OilException.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.exception; 2 | 3 | /** 4 | * @author panghu 5 | * @Title: OilException 6 | * @ProjectName oil-supply-chain 7 | * @Description: TODO 8 | * @date 19-3-13 下午10:00 9 | */ 10 | public class OilException extends RuntimeException { 11 | 12 | private static final long serialVersionUID = 6894154257254383622L; 13 | 14 | public OilException(String message) { 15 | super(message); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/fabric/FabricConfig.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.fabric; 2 | 3 | import group.uchain.oilsupplychain.fabric.bean.Chaincode; 4 | import group.uchain.oilsupplychain.fabric.bean.Orderers; 5 | import group.uchain.oilsupplychain.fabric.bean.Peers; 6 | import lombok.extern.slf4j.Slf4j; 7 | 8 | import java.io.File; 9 | 10 | /** 11 | * 智能合约操作总参数配置器 12 | */ 13 | @Slf4j 14 | public class FabricConfig { 15 | 16 | /** 节点服务器对象 */ 17 | private Peers peers; 18 | /** 排序服务器对象 */ 19 | private Orderers orderers; 20 | /** 智能合约对象 */ 21 | private Chaincode chaincode; 22 | /** channel-artifacts所在路径:默认channel-artifacts所在路径/xxx/WEB-INF/classes/fabric/channel-artifacts/ */ 23 | private String channelArtifactsPath; 24 | /** crypto-config所在路径:默认crypto-config所在路径/xxx/WEB-INF/classes/fabric/crypto-config/ */ 25 | private String cryptoConfigPath; 26 | private boolean registerEvent = false; 27 | 28 | public FabricConfig() { 29 | // 默认channel-artifacts所在路径 /xxx/WEB-INF/classes/fabric/channel-artifacts/ 30 | channelArtifactsPath = getChannlePath() + "/channel-artifacts/"; 31 | // 默认crypto-config所在路径 /xxx/WEB-INF/classes/fabric/crypto-config/ 32 | cryptoConfigPath = getChannlePath() + "/crypto-config/"; 33 | } 34 | 35 | /** 36 | * 默认fabric配置路径 37 | * 38 | * @return D:/installSoft/apache-tomcat-9.0.0.M21-02/webapps/xxx/WEB-INF/classes/fabric/channel-artifacts/ 39 | */ 40 | private String getChannlePath() { 41 | String directorys = ChaincodeManager.class.getClassLoader().getResource("fabric").getFile(); 42 | log.debug("directorys = " + directorys); 43 | File directory = new File(directorys); 44 | log.debug("directory = " + directory.getPath()); 45 | 46 | // return directory.getPath(); 47 | return "src/main/resources/fabric/channel-artifacts/"; 48 | } 49 | 50 | public Peers getPeers() { 51 | return peers; 52 | } 53 | 54 | public void setPeers(Peers peers) { 55 | this.peers = peers; 56 | } 57 | 58 | public Orderers getOrderers() { 59 | return orderers; 60 | } 61 | 62 | public void setOrderers(Orderers orderers) { 63 | this.orderers = orderers; 64 | } 65 | 66 | public Chaincode getChaincode() { 67 | return chaincode; 68 | } 69 | 70 | public void setChaincode(Chaincode chaincode) { 71 | this.chaincode = chaincode; 72 | } 73 | 74 | public String getChannelArtifactsPath() { 75 | return channelArtifactsPath; 76 | } 77 | 78 | public void setChannelArtifactsPath(String channelArtifactsPath) { 79 | this.channelArtifactsPath = channelArtifactsPath; 80 | } 81 | 82 | public String getCryptoConfigPath() { 83 | return cryptoConfigPath; 84 | } 85 | 86 | public void setCryptoConfigPath(String cryptoConfigPath) { 87 | this.cryptoConfigPath = cryptoConfigPath; 88 | } 89 | 90 | public boolean isRegisterEvent() { 91 | return registerEvent; 92 | } 93 | 94 | public void setRegisterEvent(boolean registerEvent) { 95 | this.registerEvent = registerEvent; 96 | } 97 | 98 | } -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/fabric/bean/Chaincode.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.fabric.bean; 2 | 3 | 4 | /** 5 | * Fabric创建的chaincode信息,涵盖所属channel等信息 6 | */ 7 | public class Chaincode { 8 | /** 当前将要访问的智能合约所属频道名称 */ 9 | private String channelName; 10 | /** 智能合约名称 */ 11 | private String chaincodeName; 12 | /** 智能合约安装路径 */ 13 | private String chaincodePath; 14 | /** 智能合约版本号 */ 15 | private String chaincodeVersion; 16 | /** 执行智能合约操作等待时间 */ 17 | private int invokeWaitTime = 100000; 18 | /** 执行智能合约实例等待时间 */ 19 | private int deployWaitTime = 120000; 20 | 21 | public String getChannelName() { 22 | return channelName; 23 | } 24 | 25 | public void setChannelName(String channelName) { 26 | this.channelName = channelName; 27 | } 28 | 29 | public String getChaincodeName() { 30 | return chaincodeName; 31 | } 32 | 33 | public void setChaincodeName(String chaincodeName) { 34 | this.chaincodeName = chaincodeName; 35 | } 36 | 37 | public String getChaincodePath() { 38 | return chaincodePath; 39 | } 40 | 41 | public void setChaincodePath(String chaincodePath) { 42 | this.chaincodePath = chaincodePath; 43 | } 44 | 45 | public String getChaincodeVersion() { 46 | return chaincodeVersion; 47 | } 48 | 49 | public void setChaincodeVersion(String chaincodeVersion) { 50 | this.chaincodeVersion = chaincodeVersion; 51 | } 52 | 53 | public int getInvokeWaitTime() { 54 | return invokeWaitTime; 55 | } 56 | 57 | public void setInvokeWaitTime(int invokeWaitTime) { 58 | this.invokeWaitTime = invokeWaitTime; 59 | } 60 | 61 | public int getDeployWaitTime() { 62 | return deployWaitTime; 63 | } 64 | 65 | public void setDeployWaitTime(int deployWaitTime) { 66 | this.deployWaitTime = deployWaitTime; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/fabric/bean/Orderers.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.fabric.bean; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * Fabric创建的orderer信息,涵盖单机和集群两种方案 8 | * 9 | * @author aberic 10 | * 11 | * @date 2017年10月18日 - 下午1:56:48 12 | * @email abericyang@gmail.com 13 | */ 14 | public class Orderers { 15 | 16 | /** orderer 排序服务器所在根域名 */ 17 | private String ordererDomainName; // anti-moth.com 18 | /** orderer 排序服务器集合 */ 19 | private List orderers; 20 | 21 | public Orderers() { 22 | orderers = new ArrayList<>(); 23 | } 24 | 25 | public String getOrdererDomainName() { 26 | return ordererDomainName; 27 | } 28 | 29 | public void setOrdererDomainName(String ordererDomainName) { 30 | this.ordererDomainName = ordererDomainName; 31 | } 32 | 33 | /** 新增排序服务器 */ 34 | public void addOrderer(String name, String location) { 35 | orderers.add(new Orderer(name, location)); 36 | } 37 | 38 | /** 获取排序服务器集合 */ 39 | public List get() { 40 | return orderers; 41 | } 42 | 43 | /** 44 | * 排序服务器对象 45 | * 46 | * @author aberic 47 | * 48 | * @date 2017年10月18日 - 下午2:06:22 49 | * @email abericyang@gmail.com 50 | */ 51 | public class Orderer { 52 | 53 | /** orderer 排序服务器的域名 */ 54 | private String ordererName; 55 | /** orderer 排序服务器的访问地址 */ 56 | private String ordererLocation; 57 | 58 | public Orderer(String ordererName, String ordererLocation) { 59 | super(); 60 | this.ordererName = ordererName; 61 | this.ordererLocation = ordererLocation; 62 | } 63 | 64 | public String getOrdererName() { 65 | return ordererName; 66 | } 67 | 68 | public void setOrdererName(String ordererName) { 69 | this.ordererName = ordererName; 70 | } 71 | 72 | public String getOrdererLocation() { 73 | return ordererLocation; 74 | } 75 | 76 | public void setOrdererLocation(String ordererLocation) { 77 | this.ordererLocation = ordererLocation; 78 | } 79 | 80 | } 81 | 82 | } -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/fabric/bean/Peers.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.fabric.bean; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * Fabric创建的peer信息,包含有cli、org、ca、couchdb等节点服务器关联启动服务信息集合 8 | * 9 | * @author aberic 10 | * 11 | * @date 2017年10月18日 - 下午1:49:03 12 | * @email abericyang@gmail.com 13 | */ 14 | public class Peers { 15 | 16 | private String orgName; // Org1 17 | /** 当前指定的组织名称 */ 18 | private String orgMSPID; // Org1MSP 19 | /** 当前指定的组织所在根域名 */ 20 | private String orgDomainName; //org1.example.com 21 | /** orderer 排序服务器集合 */ 22 | private List peers; 23 | 24 | public Peers() { 25 | peers = new ArrayList<>(); 26 | } 27 | 28 | public String getOrgName() { 29 | return orgName; 30 | } 31 | 32 | public void setOrgName(String orgName) { 33 | this.orgName = orgName; 34 | } 35 | 36 | public String getOrgMSPID() { 37 | return orgMSPID; 38 | } 39 | 40 | public void setOrgMSPID(String orgMSPID) { 41 | this.orgMSPID = orgMSPID; 42 | } 43 | 44 | public String getOrgDomainName() { 45 | return orgDomainName; 46 | } 47 | 48 | public void setOrgDomainName(String orgDomainName) { 49 | this.orgDomainName = orgDomainName; 50 | } 51 | 52 | /** 新增排序服务器 */ 53 | public void addPeer(String peerName, String peerEventHubName, String peerLocation, String peerEventHubLocation, String caLocation) { 54 | peers.add(new Peer(peerName, peerEventHubName, peerLocation, peerEventHubLocation, caLocation)); 55 | } 56 | 57 | /** 获取排序服务器集合 */ 58 | public List get() { 59 | return peers; 60 | } 61 | 62 | /** 63 | * 节点服务器对象 64 | * 65 | * @author aberic 66 | * 67 | * @date 2017年11月11日 - 下午6:56:14 68 | * @email abericyang@gmail.com 69 | */ 70 | public class Peer { 71 | 72 | /** 当前指定的组织节点域名 */ 73 | private String peerName; // peer0.org1.example.com 74 | /** 当前指定的组织节点事件域名 */ 75 | private String peerEventHubName; // peer0.org1.example.com 76 | /** 当前指定的组织节点访问地址 */ 77 | private String peerLocation; // grpc://110.131.116.21:7051 78 | /** 当前指定的组织节点事件监听访问地址 */ 79 | private String peerEventHubLocation; // grpc://110.131.116.21:7053 80 | /** 当前指定的组织节点ca访问地址 */ 81 | private String caLocation; // http://110.131.116.21:7054 82 | /** 当前peer是否增加Event事件处理 */ 83 | private boolean addEventHub = false; 84 | 85 | public Peer(String peerName, String peerEventHubName, String peerLocation, String peerEventHubLocation, String caLocation) { 86 | this.peerName = peerName; 87 | this.peerEventHubName = peerEventHubName; 88 | this.peerLocation = peerLocation; 89 | this.peerEventHubLocation = peerEventHubLocation; 90 | this.caLocation = caLocation; 91 | } 92 | 93 | public String getPeerName() { 94 | return peerName; 95 | } 96 | 97 | public void setPeerName(String peerName) { 98 | this.peerName = peerName; 99 | } 100 | 101 | public String getPeerEventHubName() { 102 | return peerEventHubName; 103 | } 104 | 105 | public void setPeerEventHubName(String peerEventHubName) { 106 | this.peerEventHubName = peerEventHubName; 107 | } 108 | 109 | public String getPeerLocation() { 110 | return peerLocation; 111 | } 112 | 113 | public void setPeerLocation(String peerLocation) { 114 | this.peerLocation = peerLocation; 115 | } 116 | 117 | public String getPeerEventHubLocation() { 118 | return peerEventHubLocation; 119 | } 120 | 121 | public void setPeerEventHubLocation(String eventHubLocation) { 122 | this.peerEventHubLocation = eventHubLocation; 123 | } 124 | 125 | public String getCaLocation() { 126 | return caLocation; 127 | } 128 | 129 | public void setCaLocation(String caLocation) { 130 | this.caLocation = caLocation; 131 | } 132 | 133 | public boolean isAddEventHub() { 134 | return addEventHub; 135 | } 136 | 137 | public void addEventHub(boolean addEventHub) { 138 | this.addEventHub = addEventHub; 139 | } 140 | 141 | } 142 | 143 | } -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/form/OrderForm.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.form; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * @author panghu 10 | */ 11 | @Data 12 | public class OrderForm implements Serializable { 13 | 14 | private static final long serialVersionUID = -8469082151024533784L; 15 | 16 | private String id; 17 | 18 | private String batchNumber; 19 | 20 | @JsonFormat(timezone = "GMT+8") 21 | private String date; 22 | 23 | private String from; 24 | 25 | private String to; 26 | 27 | /** 28 | * 申油单 1 29 | * 发油单 2 30 | * 运输申请单 3 31 | * 运输单 4 32 | * 收油单 5 33 | * 售油单6 34 | */ 35 | private String type; 36 | 37 | private String status; 38 | 39 | 40 | } -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/interceptor/AuthorityInterceptor.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.interceptor; 2 | 3 | 4 | import com.alibaba.fastjson.JSON; 5 | import group.uchain.oilsupplychain.annotation.RoleRequired; 6 | import group.uchain.oilsupplychain.dto.User; 7 | import group.uchain.oilsupplychain.enums.CodeMsg; 8 | import group.uchain.oilsupplychain.result.Result; 9 | import group.uchain.oilsupplychain.service.UserService; 10 | import lombok.extern.slf4j.Slf4j; 11 | import org.springframework.beans.factory.annotation.Autowired; 12 | import org.springframework.http.MediaType; 13 | import org.springframework.stereotype.Service; 14 | import org.springframework.web.method.HandlerMethod; 15 | import org.springframework.web.servlet.HandlerInterceptor; 16 | import org.springframework.web.servlet.ModelAndView; 17 | 18 | import javax.servlet.http.HttpServletRequest; 19 | import javax.servlet.http.HttpServletResponse; 20 | 21 | /** 22 | * @author dgh 23 | * @date 19-1-19 下午7:54 24 | */ 25 | @Service 26 | @Slf4j 27 | public class AuthorityInterceptor implements HandlerInterceptor { 28 | 29 | @Autowired 30 | private UserService userService; 31 | 32 | @Override 33 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 34 | response.setCharacterEncoding("UTF-8"); 35 | response.setContentType(MediaType.APPLICATION_JSON_UTF8_VALUE); 36 | String json; 37 | User user = userService.getCurrentUser(); 38 | log.info(String.valueOf(user)); 39 | if (user == null) { 40 | return true; 41 | } 42 | log.info("Security 执行权限验证--------"); 43 | if (handler instanceof HandlerMethod) { 44 | HandlerMethod handlerMethod = (HandlerMethod) handler; 45 | RoleRequired roleRequired = handlerMethod.getMethodAnnotation(RoleRequired.class); 46 | if (roleRequired == null) { 47 | return true; 48 | } 49 | /*将需要的权限对应的数字转化成字符数组,通过字符进行对比*/ 50 | String[] requireValue = roleRequired.value().getRole().toString().split(""); 51 | String[] requireValueArr = new String[requireValue.length]; 52 | for(int i=0;i getAllCompany(); 20 | 21 | /** 22 | * 获取所有的油库,加油站,炼油厂 23 | * @return 24 | */ 25 | List getAllUser(); 26 | 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/mapper/OrderFormMapper.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.mapper; 2 | 3 | import group.uchain.oilsupplychain.form.OrderForm; 4 | import group.uchain.oilsupplychain.vo.ApplyOrdersVO; 5 | import group.uchain.oilsupplychain.vo.OrdersVO; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author panghu 11 | */ 12 | public interface OrderFormMapper { 13 | 14 | int deleteByPrimaryKey(Integer id); 15 | 16 | int insert(OrderForm record); 17 | 18 | OrderForm selectByPrimaryKey(Integer id); 19 | 20 | List selectAll(); 21 | 22 | int updateByPrimaryKey(OrderForm record); 23 | 24 | /*------------------通过id获取历史订单--------------------------*/ 25 | 26 | List selectReceiveForms(String id); 27 | 28 | List selectSendForms(String id); 29 | 30 | List selectSellForms(String id); 31 | 32 | List selectTransForms(String id); 33 | 34 | List selectTransApplyForms(String id); 35 | 36 | List selectApplyForms(String id); 37 | 38 | /** 39 | * 通过ID获得批次号 ID是唯一的 40 | * @param id 上一级订单的ID号 41 | * @return 批次号 42 | */ 43 | String getBatchNumberById(String id); 44 | 45 | /*-------------------获取待审核的订单---------------------------*/ 46 | 47 | List getApplyForm(String id); 48 | 49 | List getTransApplyForm(String id); 50 | 51 | /*-------------------更改待审核订单状态-------------------------*/ 52 | 53 | void updateApplyFormStatus(String status, String id); 54 | 55 | int checkIdIsExist(String id); 56 | 57 | } -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/mapper/UserFormMapper.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.mapper; 2 | 3 | import group.uchain.oilsupplychain.dto.User; 4 | 5 | import java.util.List; 6 | 7 | public interface UserFormMapper { 8 | 9 | User selectByUsername(String username); 10 | 11 | String getUsernameById(Long id); 12 | 13 | List getRefinery(); 14 | 15 | } -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/mapper/UtilMapper.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.mapper; 2 | 3 | /** 4 | * @author panghu 5 | * @Title: UtilMapper.xml 6 | * @ProjectName oil-supply-chain 7 | * @date 19-3-27 下午1:17 8 | */ 9 | public interface UtilMapper { 10 | 11 | 12 | /** 13 | *检查邮箱状态 14 | * @param email 邮箱账号 15 | * @return 邮箱状态 16 | */ 17 | String checkEmailStatus(String email); 18 | 19 | /** 20 | * 更新验证码 21 | * @param checkCode 验证码 22 | * @param email 邮箱账号 23 | */ 24 | void updateCheckCode(String checkCode, String email); 25 | 26 | /** 27 | * 获取验证码 28 | * @param email 邮箱账号 29 | * @return 验证码 30 | */ 31 | String getCheckCode(String email); 32 | 33 | /** 34 | * 在数据库中加入邮箱信息 35 | * 验证码和状态码都拥有默认值 36 | * 状态码的默认值就为被占用 37 | * @param email 邮箱账号 38 | */ 39 | void addCount(String email); 40 | 41 | /** 42 | * 更新邮箱状态 设置为已经启用 43 | * @param email 邮箱账号 44 | */ 45 | void updateEmailStatus(String email); 46 | 47 | 48 | 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/redis/FastJson2JsonRedisSerializer.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.redis; 2 | 3 | import com.alibaba.fastjson.JSON; 4 | import com.alibaba.fastjson.parser.ParserConfig; 5 | import com.alibaba.fastjson.serializer.SerializerFeature; 6 | import org.springframework.data.redis.serializer.RedisSerializer; 7 | import org.springframework.data.redis.serializer.SerializationException; 8 | 9 | import java.nio.charset.Charset; 10 | 11 | /** 12 | * @author panghu 13 | * @Title: FastJson2JsonRedisSerializer 14 | * @ProjectName demo 15 | * @Description: TODO 16 | * @date 19-3-5 上午11:04 17 | */ 18 | public class FastJson2JsonRedisSerializer implements RedisSerializer { 19 | 20 | public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); 21 | 22 | private Class clazz; 23 | 24 | public FastJson2JsonRedisSerializer(Class clazz) { 25 | super(); 26 | this.clazz = clazz; 27 | } 28 | 29 | @Override 30 | public byte[] serialize(T t) throws SerializationException { 31 | if (t == null) { 32 | return new byte[0]; 33 | } 34 | return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET); 35 | } 36 | 37 | @Override 38 | public T deserialize(byte[] bytes) throws SerializationException { 39 | if (bytes == null || bytes.length == 0) { 40 | return null; 41 | } 42 | String str = new String(bytes, DEFAULT_CHARSET); 43 | //解决com.alibaba.fastjson.JSONException: autoType is not support,添加白名单 44 | ParserConfig.getGlobalInstance().addAccept("group.uchain.oilsupplychain.vo"); 45 | return JSON.parseObject(str, clazz); 46 | } 47 | 48 | 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/redis/RedisModelMap.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.redis; 2 | 3 | /** 4 | * @author panghu 5 | * @Title: ModelMap 6 | * @ProjectName demo 7 | * @Description: TODO 8 | * @date 19-3-5 下午1:21 9 | */ 10 | public class RedisModelMap { 11 | 12 | public org.springframework.ui.ModelMap getModelMap(String status, Object data, String msg) { 13 | org.springframework.ui.ModelMap modelMap = new org.springframework.ui.ModelMap(); 14 | modelMap.put("status", status); 15 | modelMap.put("data", data); 16 | modelMap.put("msg", msg); 17 | return modelMap; 18 | 19 | } 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/redis/RedisTemplate.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.redis; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.springframework.data.redis.connection.RedisConnection; 5 | import org.springframework.data.redis.connection.jedis.JedisConnection; 6 | 7 | /** 8 | * @author panghu 9 | * @Title: RedisTemplate 10 | * @ProjectName demo 11 | * @Description: TODO 12 | * @date 19-3-5 上午11:01 13 | */ 14 | @Slf4j 15 | public class RedisTemplate extends org.springframework.data.redis.core.RedisTemplate { 16 | 17 | public static ThreadLocal indexdb = ThreadLocal.withInitial(() -> 0); 18 | 19 | @Override 20 | protected RedisConnection preProcessConnection(RedisConnection connection, boolean existingConnection) { 21 | try { 22 | Integer dbIndex = indexdb.get(); 23 | //如果设置了dbIndex 24 | if (dbIndex != null) { 25 | if (connection instanceof JedisConnection) { 26 | if (((JedisConnection) connection).getNativeConnection().getDB().intValue() != dbIndex) { 27 | connection.select(dbIndex); 28 | log.info("选择数据库{}",dbIndex); 29 | } 30 | } else { 31 | connection.select(dbIndex); 32 | log.info("选择数据库{}",dbIndex); 33 | } 34 | } else { 35 | connection.select(0); 36 | log.info("选择了数据库0"); 37 | } 38 | } finally { 39 | indexdb.remove(); 40 | } 41 | return super.preProcessConnection(connection, existingConnection); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/redis/key/BasePrefix.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.redis.key; 2 | 3 | /** 4 | * @author panghu 5 | */ 6 | public abstract class BasePrefix implements KeyStrategy { 7 | 8 | private int expireSeconds; 9 | private String prefix; 10 | 11 | 12 | public BasePrefix(int expireSeconds, String prefix) { 13 | this.expireSeconds = expireSeconds; 14 | this.prefix = prefix; 15 | } 16 | 17 | @Override 18 | public int getExpireSeconds() { 19 | return this.expireSeconds; 20 | } 21 | 22 | @Override 23 | public String getPrefix() { 24 | return prefix; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/redis/key/KeyStrategy.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.redis.key; 2 | 3 | /** 4 | * @author panghu 5 | * @title: KeyStrategy 6 | * @projectName demo 7 | * @date 19-4-22 上午10:15 8 | */ 9 | public interface KeyStrategy { 10 | 11 | /** 12 | * 获取失效时间 13 | * @return 14 | */ 15 | int getExpireSeconds(); 16 | 17 | /** 18 | * 获取前缀 19 | * @return 20 | */ 21 | String getPrefix(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/redis/key/ModelKey.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.redis.key; 2 | 3 | /** 4 | * @author panghu 5 | * @title: ModelKey 6 | * @projectName demo 7 | * @date 19-4-22 上午10:18 8 | */ 9 | 10 | public class ModelKey extends BasePrefix { 11 | 12 | public ModelKey(int expireSeconds, String prefix) { 13 | super(expireSeconds, prefix); 14 | } 15 | 16 | public ModelKey(){ 17 | super(60*60*12,"oil"); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/redis/key/UserKey.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.redis.key; 2 | 3 | /** 4 | * @author panghu 5 | * @title: UserKey 6 | * @projectName test 7 | * @date 19-5-29 下午7:02 8 | */ 9 | public class UserKey extends BasePrefix { 10 | public UserKey(int expireSeconds, String prefix) { 11 | super(expireSeconds, prefix); 12 | } 13 | 14 | public UserKey(String id) { 15 | super(-1,id); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/result/Result.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.result; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import group.uchain.oilsupplychain.enums.CodeMsg; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * 结果返回类封装 10 | * @author clf 11 | */ 12 | @Data 13 | @JsonInclude(JsonInclude.Include.NON_NULL) 14 | public class Result { 15 | private Integer code; 16 | private String message; 17 | private T data; 18 | 19 | public Result() { 20 | this.code = 200; 21 | this.message = "操作成功"; 22 | } 23 | 24 | public Result(String message) { 25 | this.code = 500; 26 | this.message = message; 27 | } 28 | 29 | public Result(T data) { 30 | this.code=200; 31 | this.message="success"; 32 | this.data = data; 33 | } 34 | 35 | private Result(CodeMsg codeMsg) { 36 | if (codeMsg==null) { 37 | return; 38 | } 39 | this.code = codeMsg.getCode(); 40 | this.message = codeMsg.getMsg(); 41 | } 42 | 43 | private Result(T data, String message) { 44 | this.code = 200; 45 | this.message = message; 46 | this.data = data; 47 | } 48 | 49 | public static Result dataAndMessage(T data, String message){ 50 | if (message == null){ 51 | return new Result<>(data, "success"); 52 | }else { 53 | return new Result<>(data, message); 54 | } 55 | } 56 | 57 | public static Result successData(T data){ 58 | return new Result(data); 59 | } 60 | 61 | public static Result success(){ 62 | return new Result(); 63 | } 64 | 65 | public static Result error(CodeMsg codeMsg){ 66 | return new Result<>(codeMsg); 67 | } 68 | 69 | public static Result error(String msg){ 70 | return new Result<>(msg); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/security/JwtAuthenticationEntryPoint.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.security; 2 | 3 | import org.springframework.security.core.AuthenticationException; 4 | import org.springframework.security.core.userdetails.UsernameNotFoundException; 5 | import org.springframework.security.web.AuthenticationEntryPoint; 6 | import org.springframework.stereotype.Component; 7 | 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | import java.io.IOException; 11 | import java.io.Serializable; 12 | 13 | /** 14 | * @author cyg 15 | * @date 18-9-2 下午4:52 16 | **/ 17 | @Component 18 | public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint, Serializable { 19 | 20 | private static final long serialVersionUID = -6238634545543667266L; 21 | 22 | /** 23 | * 拦截身份认证异常 24 | **/ 25 | @Override 26 | public void commence(HttpServletRequest request, 27 | HttpServletResponse response, 28 | AuthenticationException authException) throws IOException { 29 | if (authException instanceof UsernameNotFoundException) { 30 | response.sendError(401, "用户名未找到"); 31 | } 32 | //当访问时没有有效凭证时进行拦截返回401未认证 33 | response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "访问拦截Unauthorized"); 34 | } 35 | } -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/security/JwtAuthenticationTokenFilter.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.security; 2 | 3 | 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; 7 | import org.springframework.security.core.context.SecurityContextHolder; 8 | import org.springframework.security.core.userdetails.UserDetails; 9 | import org.springframework.security.core.userdetails.UserDetailsService; 10 | import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; 11 | import org.springframework.web.filter.OncePerRequestFilter; 12 | 13 | import javax.servlet.FilterChain; 14 | import javax.servlet.ServletException; 15 | import javax.servlet.http.HttpServletRequest; 16 | import javax.servlet.http.HttpServletResponse; 17 | import java.io.IOException; 18 | 19 | /** 20 | * JwtFilter 21 | * 22 | * @author panghu 23 | */ 24 | @Slf4j 25 | public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { 26 | 27 | @Autowired 28 | private UserDetailsService userDetailsService; 29 | 30 | @Autowired 31 | private JwtTokenUtil jwtTokenUtil; 32 | 33 | @Override 34 | protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { 35 | /* 36 | * 跨域问题的设置 37 | */ 38 | String option = "OPTIONS"; 39 | if (option.equals(request.getMethod())) { 40 | log.info("浏览器的预请求的处理.."); 41 | response.setContentType("application/json; charset=utf-8"); 42 | response.setCharacterEncoding("UTF-8"); 43 | response.setHeader("Access-Control-Max-Age", "3600"); 44 | response.setHeader("Access-Control-Allow-Methods", "POST, GET,PUT, OPTIONS, DELETE,HEAD"); 45 | response.setHeader("Access-Control-Allow-Origin", "*"); 46 | response.setHeader("Access-Control-Allow-Credentials", "true"); 47 | response.setHeader("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, Accept, token,Origin, No-Cache, X-Requested-With, If-Modified-Since,authorization,Pragma, Last-Modified, Cache-Control, Expires, Authorization,Token"); 48 | return; 49 | } else { 50 | String requestURI = request.getRequestURI(); 51 | log.info("requestURI:{}", requestURI); 52 | } 53 | /* 54 | * 定义的tokenHeader的名称 55 | * 在postman中在header中作为参数名 56 | */ 57 | String tokenHeader = "Authorization"; 58 | String authToken = request.getHeader(tokenHeader); 59 | String username = jwtTokenUtil.getUsernameFromToken(authToken); 60 | 61 | log.info("checking authentication for user " + username); 62 | 63 | /* 64 | 当token中的username不为空是进行验证token是否是有效的token 65 | */ 66 | if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { 67 | log.info("token中的username不为空,Context中的authentication为空时,进行token的验证.."); 68 | UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); 69 | log.info("加载userDetails:{}", userDetails.getUsername()); 70 | if (jwtTokenUtil.validateToken(authToken, userDetails)) { 71 | UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); 72 | authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); 73 | log.info("authenticated user " + username + ", setting security context"); 74 | SecurityContextHolder.getContext().setAuthentication(authentication); 75 | } 76 | } 77 | 78 | chain.doFilter(request, response); 79 | 80 | } 81 | } -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/security/JwtUser.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.security; 2 | 3 | import lombok.Data; 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.security.core.GrantedAuthority; 6 | import org.springframework.security.core.userdetails.UserDetails; 7 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 8 | import org.springframework.stereotype.Component; 9 | 10 | import java.util.Collection; 11 | 12 | 13 | /** 14 | * @description 封装用户的相关信息,在UserDetailService中封装了这个对象 15 | * 默认密码为空字符串 , 并且设置为启用,没有锁定 . 没有过期. 16 | * 17 | * @author panghu 18 | */ 19 | @Component 20 | @Slf4j 21 | @Data 22 | public class JwtUser implements UserDetails { 23 | 24 | private String username; 25 | private String password; 26 | private String role; 27 | 28 | 29 | public JwtUser(String username, String password,String role) { 30 | this.username = username; 31 | this.password = new BCryptPasswordEncoder().encode(password); 32 | this.role = role; 33 | 34 | } 35 | 36 | public JwtUser() { 37 | 38 | } 39 | 40 | 41 | /** 42 | * 可以不进行权限的配置 43 | * 44 | * @return 45 | */ 46 | @Override 47 | public Collection getAuthorities() { 48 | return null; 49 | } 50 | 51 | @Override 52 | public String getPassword() { 53 | return password; 54 | } 55 | 56 | @Override 57 | public String getUsername() { 58 | return username; 59 | } 60 | 61 | /** 62 | * 默认有效账户 63 | * 64 | * @return 65 | */ 66 | @Override 67 | public boolean isAccountNonExpired() { 68 | return true; 69 | } 70 | 71 | /** 72 | * 默认账户没有被锁 73 | */ 74 | @Override 75 | public boolean isAccountNonLocked() { 76 | return true; 77 | } 78 | 79 | /** 80 | * 默认凭证有效 81 | */ 82 | @Override 83 | public boolean isCredentialsNonExpired() { 84 | return true; 85 | } 86 | 87 | /** 88 | * 默认账户可用 89 | */ 90 | @Override 91 | public boolean isEnabled() { 92 | return true; 93 | } 94 | 95 | 96 | } 97 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/security/handler/AuthenticationFailureHandler.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.security.handler; 2 | 3 | import com.fasterxml.jackson.databind.ObjectMapper; 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.http.HttpStatus; 7 | import org.springframework.http.MediaType; 8 | import org.springframework.security.core.AuthenticationException; 9 | import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler; 10 | import org.springframework.stereotype.Component; 11 | 12 | import javax.servlet.ServletException; 13 | import javax.servlet.http.HttpServletRequest; 14 | import javax.servlet.http.HttpServletResponse; 15 | import java.io.IOException; 16 | 17 | /** 18 | * @author dgh 19 | * @date 19-1-18 下午4:02 20 | */ 21 | @Slf4j 22 | @Component 23 | public class AuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler { 24 | 25 | private ObjectMapper objectMapper; 26 | 27 | @Autowired 28 | public AuthenticationFailureHandler(ObjectMapper objectMapper) { 29 | this.objectMapper = objectMapper; 30 | } 31 | 32 | @Override 33 | public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { 34 | log.info("登录失败"); 35 | response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); 36 | /*服务器500异常*/ 37 | response.setContentType(MediaType.APPLICATION_JSON_UTF8_VALUE); 38 | response.getWriter().write(objectMapper.writeValueAsString(exception)); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/service/LoginService.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.service; 2 | 3 | import group.uchain.oilsupplychain.result.Result; 4 | 5 | import java.util.Map; 6 | 7 | /** 8 | * @author panghu 9 | * @Title: LoginService 10 | * @ProjectName oil-supply-chain 11 | * @date 19-3-13 上午9:27 12 | */ 13 | public interface LoginService { 14 | /** 15 | * @description 用户登录接口 16 | * @param username 用户名 17 | * @param password 密码 18 | * @return 返回给前端的结果 19 | */ 20 | Result login(String username, String password); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/service/UserService.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.service; 2 | 3 | 4 | import group.uchain.oilsupplychain.dto.User; 5 | 6 | /** 7 | * @author dgh 8 | * @date 19-1-18 下午3:14 9 | */ 10 | public interface UserService { 11 | 12 | /** 13 | * demo 14 | * 15 | * @return 16 | */ 17 | User getCurrentUser(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/service/impl/BatchNumberService.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.service.impl; 2 | 3 | import group.uchain.oilsupplychain.mapper.OrderFormMapper; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.stereotype.Service; 6 | 7 | /** 8 | * @author panghu 9 | * @title: BatchNumberService 10 | * @projectName oil-supply-chain 11 | * @date 19-4-7 下午4:20 12 | * @Description: 通过ID号获取相应的批次号 13 | */ 14 | @Service 15 | public class BatchNumberService { 16 | 17 | private OrderFormMapper orderFormMapper; 18 | 19 | @Autowired 20 | public BatchNumberService(OrderFormMapper orderFormMapper) { 21 | this.orderFormMapper = orderFormMapper; 22 | } 23 | 24 | public String getBatchNumberById(String id) { 25 | return orderFormMapper.getBatchNumberById(id); 26 | } 27 | 28 | 29 | } -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/service/impl/JwtUserDetailsServiceImpl.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.service.impl; 2 | 3 | import group.uchain.oilsupplychain.mapper.UserFormMapper; 4 | import group.uchain.oilsupplychain.security.JwtUser; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.security.core.userdetails.UserDetails; 7 | import org.springframework.security.core.userdetails.UserDetailsService; 8 | import org.springframework.security.core.userdetails.UsernameNotFoundException; 9 | import org.springframework.stereotype.Service; 10 | 11 | /** 12 | * 13 | * @author panghu 14 | */ 15 | @Service 16 | public class JwtUserDetailsServiceImpl implements UserDetailsService { 17 | 18 | private UserFormMapper userFormMapper; 19 | 20 | @Autowired 21 | public JwtUserDetailsServiceImpl(UserFormMapper userFormMapper) { 22 | this.userFormMapper = userFormMapper; 23 | } 24 | 25 | @Override 26 | public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { 27 | 28 | if (userFormMapper.selectByUsername(username) == null) { 29 | throw new UsernameNotFoundException(String.format("No user found with username '%s'.", username)); 30 | } else { 31 | String password = userFormMapper.selectByUsername(username).getPassword(); 32 | String role = userFormMapper.selectByUsername(username).getRole(); 33 | //返回一个JwtUser并将这个对象的相关信息放入Token的负载当中,调用JwtTokenUtils中的generateToken方法 34 | //这里其实可以不放入role,获取role的方式还是在security中的Context获取用户名.再通过用户名查询role 35 | return new JwtUser(username, password,role); 36 | } 37 | 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/service/impl/LoginServiceImpl.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.service.impl; 2 | 3 | import group.uchain.oilsupplychain.enums.CodeMsg; 4 | import group.uchain.oilsupplychain.mapper.UserFormMapper; 5 | import group.uchain.oilsupplychain.result.Result; 6 | import group.uchain.oilsupplychain.security.JwtTokenUtil; 7 | import group.uchain.oilsupplychain.service.LoginService; 8 | import lombok.extern.slf4j.Slf4j; 9 | import org.springframework.security.authentication.AuthenticationManager; 10 | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; 11 | import org.springframework.security.core.Authentication; 12 | import org.springframework.security.core.context.SecurityContextHolder; 13 | import org.springframework.security.core.userdetails.UserDetails; 14 | import org.springframework.security.core.userdetails.UserDetailsService; 15 | import org.springframework.stereotype.Service; 16 | 17 | import java.util.HashMap; 18 | import java.util.Map; 19 | 20 | /** 21 | * @author dgh 22 | * @date 19-1-19 下午12:57 23 | */ 24 | @Slf4j 25 | @Service 26 | public class LoginServiceImpl implements LoginService { 27 | 28 | private AuthenticationManager authenticationManager; 29 | 30 | private JwtTokenUtil jwtTokenUtil; 31 | 32 | private UserDetailsService userDetailsService; 33 | 34 | private UserFormMapper userFormMapper; 35 | 36 | public LoginServiceImpl(AuthenticationManager authenticationManager, JwtTokenUtil jwtTokenUtil, 37 | UserDetailsService userDetailsService, UserFormMapper userFormMapper) { 38 | this.authenticationManager = authenticationManager; 39 | this.jwtTokenUtil = jwtTokenUtil; 40 | this.userDetailsService = userDetailsService; 41 | this.userFormMapper = userFormMapper; 42 | } 43 | 44 | @Override 45 | public Result login(String username, String password) { 46 | if (userFormMapper.selectByUsername(username) == null) { 47 | log.info("用户不存在"); 48 | return Result.error(CodeMsg.USER_NOT_EXIST); 49 | } 50 | 51 | log.info("进行验证用户密码.."); 52 | Authentication token1 = new UsernamePasswordAuthenticationToken(username, password); 53 | Authentication authentication = authenticationManager.authenticate(token1); 54 | log.info("验证通过.."); 55 | SecurityContextHolder.getContext().setAuthentication(authentication); 56 | //返回的对象中是带有权限信息的 57 | final UserDetails userDetails = userDetailsService.loadUserByUsername(username); 58 | log.info("加载userDetails:" + userDetails.getUsername()); 59 | //将UserDetails放入Token的 payload中 60 | final String token = jwtTokenUtil.generateToken(userDetails); 61 | HashMap r = new HashMap<>(10); 62 | r.put("token", token); 63 | 64 | String role = userFormMapper.selectByUsername(username).getRole(); 65 | r.put("role", String.valueOf(role)); 66 | 67 | return Result.successData(r); 68 | } 69 | 70 | 71 | 72 | } 73 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/service/impl/MailService.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.service.impl; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.beans.factory.annotation.Value; 6 | import org.springframework.mail.SimpleMailMessage; 7 | import org.springframework.mail.javamail.JavaMailSender; 8 | import org.springframework.mail.javamail.MimeMessageHelper; 9 | import org.springframework.security.core.Authentication; 10 | import org.springframework.security.core.context.SecurityContextHolder; 11 | import org.springframework.stereotype.Service; 12 | 13 | import javax.mail.internet.MimeMessage; 14 | import javax.mail.internet.MimeUtility; 15 | import java.io.File; 16 | import java.util.List; 17 | 18 | /** 19 | * @author panghu 20 | * @Title: UtilService 21 | * @ProjectName oil-supply-chain 22 | * @date 19-3-27 下午3:31 23 | */ 24 | @Slf4j 25 | @Service 26 | public class MailService { 27 | 28 | private JavaMailSender mailSender; 29 | 30 | @Autowired 31 | public MailService(JavaMailSender mailSender) { 32 | this.mailSender = mailSender; 33 | } 34 | 35 | String getUsernameFromContext(){ 36 | Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); 37 | return authentication.getName(); 38 | } 39 | 40 | 41 | 42 | @Value("${spring.mail.username}") 43 | private String from; 44 | 45 | /** 46 | * 发送普通邮件 47 | * 48 | * @param to 49 | * @param title 50 | * @param content 51 | */ 52 | public void sendSimpleMail(String to, String title, String content) { 53 | SimpleMailMessage message = new SimpleMailMessage(); 54 | message.setFrom(from); 55 | message.setTo(to); 56 | message.setSubject(title); 57 | message.setText(content); 58 | mailSender.send(message); 59 | log.info("邮件发送成功"); 60 | } 61 | 62 | /** 63 | * 发送带有附件的邮件 64 | * 65 | * @param to 66 | * @param title 67 | * @param content 68 | * @param fileList 69 | */ 70 | public void sendAttachmentsMail(String to, String title, String content, List fileList) { 71 | MimeMessage message = mailSender.createMimeMessage(); 72 | try { 73 | MimeMessageHelper helper = new MimeMessageHelper(message, true); 74 | helper.setFrom(from); 75 | helper.setTo(to); 76 | helper.setSubject(title); 77 | helper.setText(content); 78 | String fileName = null; 79 | for (File file : fileList) { 80 | fileName = MimeUtility.encodeText(file.getName(), "GB2312", "B"); 81 | helper.addAttachment(fileName, file); 82 | } 83 | } catch (Exception e) { 84 | e.printStackTrace(); 85 | } 86 | mailSender.send(message); 87 | log.info("邮件发送成功"); 88 | } 89 | 90 | 91 | } 92 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/service/impl/TaskService.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.service.impl; 2 | 3 | import group.uchain.oilsupplychain.mapper.UserFormMapper; 4 | import group.uchain.oilsupplychain.utils.FabricMethod; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.scheduling.annotation.Scheduled; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | import java.util.Random; 11 | 12 | 13 | /** 14 | * @author panghu 15 | * @title: TaskService 16 | * @projectName test 17 | * @date 19-5-28 上午10:36 18 | */ 19 | @Service 20 | public class TaskService { 21 | 22 | private UserFormMapper userFormMapper; 23 | 24 | @Autowired 25 | public TaskService(UserFormMapper userFormMapper) { 26 | this.userFormMapper = userFormMapper; 27 | } 28 | 29 | /** 30 | * 默认单位是毫秒 31 | */ 32 | @Scheduled(cron = "0 0 0 1/1 * ? ") 33 | public void addOil(){ 34 | System.out.println("start to add oil for refinery....."); 35 | List refineries = userFormMapper.getRefinery(); 36 | Random random = new Random(); 37 | for (String id:refineries 38 | ) { 39 | int volume = random.nextInt(2000)+1000; 40 | System.out.println("选择炼油厂ID:"+id+" "+","+"增加的数量"+volume+"t"); 41 | FabricMethod.addOilReserve(id,volume); 42 | } 43 | 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/service/impl/UserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.service.impl; 2 | 3 | 4 | import group.uchain.oilsupplychain.dto.User; 5 | import group.uchain.oilsupplychain.mapper.UserFormMapper; 6 | import group.uchain.oilsupplychain.service.UserService; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.security.core.Authentication; 9 | import org.springframework.security.core.context.SecurityContextHolder; 10 | import org.springframework.stereotype.Service; 11 | 12 | /** 13 | * @author panghu 14 | * @Title: UserServiceImpl 15 | * @ProjectName demo 16 | * @date 19-1-21 下午5:00 17 | */ 18 | @Service 19 | public class UserServiceImpl implements UserService { 20 | 21 | @Autowired 22 | private UserFormMapper userMapper; 23 | 24 | @Override 25 | public User getCurrentUser() { 26 | String anonymousUser = "anonymousUser"; 27 | Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); 28 | String name = authentication.getName(); 29 | if (!anonymousUser.equals(name)) { 30 | return userMapper.selectByUsername(name); 31 | } 32 | return null; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/utils/BatchNumberUtil.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.utils; 2 | 3 | import java.text.DateFormat; 4 | import java.text.SimpleDateFormat; 5 | import java.util.Date; 6 | import java.util.Random; 7 | 8 | /** 9 | * @author panghu 10 | * @Title: BatchNumberUtil 11 | * @ProjectName oil-supply-chain 12 | * @Description: 生成批次号 13 | * 前12位为时间轴,后五位为随机数 14 | * @date 19-3-25 下午12:43 15 | */ 16 | public class BatchNumberUtil { 17 | 18 | 19 | 20 | 21 | private static final int MAXLENGTH = 5; 22 | 23 | /** 24 | * 随即编码 25 | */ 26 | private static final int[] CODE = new int[]{7, 9, 6, 2, 8, 1, 3, 0, 5, 4}; 27 | 28 | /** 29 | * 根据1` //id = id == null ? 1000 : id;id进行加密+加随机数组成固定长度编码 30 | */ 31 | private static String toCode(Long id) { 32 | String idStr = id.toString(); 33 | StringBuilder sb = new StringBuilder(); 34 | for (int i = idStr.length() - 1; i >= 0; i--) { 35 | sb.append(CODE[idStr.charAt(i) - '0']); 36 | } 37 | return sb.append(getRandom(MAXLENGTH - idStr.length())).toString(); 38 | } 39 | 40 | /** 41 | * 生成时间戳 42 | */ 43 | private static String getDateTime() { 44 | DateFormat sdf = new SimpleDateFormat("yyMMddHHmmss"); 45 | return sdf.format(new Date()); 46 | } 47 | 48 | /** 49 | * 生成固定长度随机码 50 | * 51 | * @param len 长度 52 | */ 53 | private static long getRandom(long len) { 54 | long min = 1, max = 9; 55 | for (int i = 1; i < len; i++) { 56 | min *= 10; 57 | max *= 10; 58 | } 59 | return (((long) (new Random().nextDouble() * (max - min)))) + min; 60 | } 61 | 62 | /** 63 | * 生成不带类别标头的编码 64 | * 65 | * @param 66 | */ 67 | public static synchronized String getCode() { 68 | int bounds = 100; 69 | int count = 0; 70 | String result = ""; 71 | try { 72 | Random random = new Random(); 73 | for (int i = 0; i < bounds; i++) { 74 | count = random.nextInt(51) + 10; 75 | } 76 | result = getDateTime() + toCode((long) count); 77 | } catch (Exception e) { 78 | e.printStackTrace(); 79 | } 80 | return result; 81 | } 82 | 83 | } 84 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/utils/IDUtil.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.utils; 2 | 3 | import java.util.Random; 4 | import java.util.UUID; 5 | 6 | /** 7 | * @author panghu 8 | * @Title: IDUtil 9 | * @ProjectName oil-supply-chain 10 | * @date 19-3-29 上午8:18 11 | */ 12 | public class IDUtil { 13 | 14 | public static Long idGenerator(){ 15 | return getRandom() +getTime(); 16 | } 17 | 18 | /** 19 | * 生成固定长度随机码 20 | * 21 | */ 22 | public static long getRandom() { 23 | long min = 1, max = 9; 24 | for (int i = 1; i < (long) 5; i++) { 25 | min *= 9; 26 | max *= 9; 27 | } 28 | return (((long) (new Random().nextDouble() * (max - min)))) + min; 29 | } 30 | 31 | private static Integer getTime(){ 32 | long date = System.currentTimeMillis(); 33 | return Integer.valueOf(String.valueOf(date).substring(4)); 34 | } 35 | 36 | /** 37 | * 生成长UUID 38 | */ 39 | private static String randomUUID() { 40 | return UUID.randomUUID().toString().replace("-", ""); 41 | } 42 | 43 | 44 | 45 | } -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/utils/RoleChangeUtil.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.utils; 2 | 3 | /** 4 | * @author panghu 5 | * @title: RoleChangeUtil 6 | * @projectName demo 7 | * @date 19-5-3 下午12:46 8 | * @description 将前端传入的role转化为区块链的role 9 | */ 10 | public class RoleChangeUtil { 11 | 12 | /** 13 | * 1 炼油厂 ,2 省级油库,3运输公司,4地级市油库,5加油站 14 | * @param role 15 | * @return 16 | */ 17 | 18 | public static String roleChange(Integer role){ 19 | switch (role){ 20 | case 1: 21 | return "Refinery_"; 22 | case 2: 23 | case 4: 24 | return "OilDepoter_"; 25 | case 5: 26 | return "GasStation_"; 27 | default: 28 | break; 29 | } 30 | 31 | return null; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/utils/StatusUtil.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.utils; 2 | 3 | /** 4 | * @author panghu 5 | * @title: StatusUtil 6 | * @projectName demo 7 | * @date 19-5-12 上午10:28 8 | */ 9 | public class StatusUtil { 10 | public static String getStatus(String status){ 11 | switch (status){ 12 | case "Accept": 13 | return "3"; 14 | case "Reject": 15 | return "2"; 16 | default: 17 | return "1"; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/vo/ApplyOrdersVO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.vo; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import com.fasterxml.jackson.annotation.JsonIgnore; 5 | import lombok.Data; 6 | 7 | import java.util.Date; 8 | 9 | /** 10 | * @author panghu 11 | * @title: OrderSVO2 12 | * @projectName oil-supply-chain 13 | * @date 19-4-7 下午3:58 14 | */ 15 | @Data 16 | public class ApplyOrdersVO { 17 | 18 | private String id; 19 | 20 | private String batchNumber; 21 | 22 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") 23 | private Date date; 24 | 25 | private String from; 26 | 27 | private String to; 28 | 29 | /** 30 | * 订单的审核状态 31 | * 1.未审核 2.审核不通过 3.审核通过 32 | */ 33 | @JsonIgnore 34 | private String status; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/vo/OrdersVO.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.vo; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | import java.util.Date; 8 | 9 | /** 10 | * @author panghu 11 | * @title: OrdersVO 12 | * @projectName oil-supply-chain 13 | * @date 19-4-5 下午3:13 14 | */ 15 | @Data 16 | public class OrdersVO implements Serializable { 17 | 18 | private static final long serialVersionUID = -8090707222074181693L; 19 | 20 | private String id; 21 | 22 | private String batchNumber; 23 | 24 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT-5 ") 25 | private Date date; 26 | 27 | private String from; 28 | 29 | private String to; 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/group/uchain/oilsupplychain/vo/ViewUser.java: -------------------------------------------------------------------------------- 1 | package group.uchain.oilsupplychain.vo; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author panghu 10 | * @title: ViewUser 11 | * @projectName oil-supply-chain 12 | * @date 19-4-4 下午9:31 13 | */ 14 | @Data 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | @JsonInclude(JsonInclude.Include.NON_NULL) 18 | public class ViewUser { 19 | 20 | private Integer id; 21 | 22 | private String username; 23 | 24 | /** 25 | * 1.炼油厂 26 | * 2.省级油库 27 | * 3.运输公司 28 | * 4.地级市油库 29 | * 5.加油站 30 | */ 31 | private String role; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | http: 3 | encoding: 4 | force: true 5 | charset: utf-8 6 | enabled: true 7 | datasource: 8 | driver-class-name: com.mysql.cj.jdbc.Driver 9 | url: jdbc:mysql://localhost:3306/db_oil?useSSL=false&characterEncoding=utf-8&allowMultiQueries=true 10 | username: root 11 | password: "root" 12 | thymeleaf: 13 | cache: false 14 | mail: 15 | host: smtp.qq.com 16 | username: 792559738@qq.com 17 | password: fmafqfobckggbcia 18 | default-encoding: utf-8 19 | properties: 20 | mail: 21 | smtp: 22 | auth: true 23 | starttls: 24 | enable: true 25 | required: true 26 | 27 | server: 28 | port: 8041 29 | servlet: 30 | session: 31 | timeout: 3000ms 32 | tomcat: 33 | uri-encoding: UTF-8 34 | max-threads: 100 35 | mybatis: 36 | #对应mapper映射xml文件所在的路径 37 | mapper-locations: classpath:mapper/*.xml 38 | #对应实体类的路径 39 | type-aliases-package: group.uchain.oilsupplychain.* 40 | jwt: 41 | secret: swpu-uchain 42 | expiration: 1296000 43 | 44 | ###fabric-config### 45 | #info: 46 | # author: panghu 47 | #management: 48 | # endpoints: 49 | # web: 50 | # exposure: 51 | # #设置暴露的端点,默认暴露的端点是info和health 52 | # include: '*' 53 | # endpoint: 54 | # health: 55 | # enabled: true 56 | # beans: 57 | # enabled: true 58 | -------------------------------------------------------------------------------- /src/main/resources/config/generatorConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 |
55 |
56 |
-------------------------------------------------------------------------------- /src/main/resources/fabric/channel-artifacts/genesis.block: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Panghu98/oil-supply-chain/6f37680a1b41d315c42f902cd7ebd9fd06e83cef/src/main/resources/fabric/channel-artifacts/genesis.block -------------------------------------------------------------------------------- /src/main/resources/fabric/channel-artifacts/mychannel.tx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Panghu98/oil-supply-chain/6f37680a1b41d315c42f902cd7ebd9fd06e83cef/src/main/resources/fabric/channel-artifacts/mychannel.tx -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/ca/66979f1557a129badab03b68ef8ae435efe701a07908dff2ebbf03ab70df3cd3_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgHxZ3Bbd/oeqMuJDh 3 | /vujPwnJa1XeCEe/K80SnqskHQ6hRANCAAR2VLCzNbvys61p+pclfS7nmO3RoNmt 4 | sPCssCgEEpib0ZqyA1wm8Cc80zS+aAZIBvbJFDrTW2pk2qzoUHBalr8z 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPjCCAeSgAwIBAgIRAOfZOoaTo4baCNa0s+9ZLUwwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR2VLCzNbvys61p+pclfS7nmO3R 9 | oNmtsPCssCgEEpib0ZqyA1wm8Cc80zS+aAZIBvbJFDrTW2pk2qzoUHBalr8zo20w 10 | azAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB 11 | MA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIGaXnxVXoSm62rA7aO+K5DXv5wGg 12 | eQjf8uu/A6tw3zzTMAoGCCqGSM49BAMCA0gAMEUCIQDH02663Ndnge55j6g/N9VM 13 | 5yU1DlQpQ9YQEC3J68yLLAIgLHXG0+iPAzW7xC5iQOi1ALmOkWHLZxkCCPFWvpma 14 | VC8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbGgAwIBAgIRALhf6HRygm4G4VrBZf85LE0wCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMFYxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG 8 | SM49AwEHA0IABB8JKOAs5vZdO34qt+F4G5ms0F6tGYXX1xdHLRz1Zb6iwEHyu5gj 9 | mQKF4PUNcjwYi8OGKgCXrNTKb6uBgA8PrdCjTTBLMA4GA1UdDwEB/wQEAwIHgDAM 10 | BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIGaXnxVXoSm62rA7aO+K5DXv5wGgeQjf 11 | 8uu/A6tw3zzTMAoGCCqGSM49BAMCA0cAMEQCIFSAg2O0R7gHjeAF3TY0xAZYIJZn 12 | 725hn+mKjUVJHzJTAiB3fs0I1kPGT371FLOhcn7UBuVTBdMI5Df1O6UFoXczyw== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPjCCAeSgAwIBAgIRAOfZOoaTo4baCNa0s+9ZLUwwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR2VLCzNbvys61p+pclfS7nmO3R 9 | oNmtsPCssCgEEpib0ZqyA1wm8Cc80zS+aAZIBvbJFDrTW2pk2qzoUHBalr8zo20w 10 | azAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB 11 | MA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIGaXnxVXoSm62rA7aO+K5DXv5wGg 12 | eQjf8uu/A6tw3zzTMAoGCCqGSM49BAMCA0gAMEUCIQDH02663Ndnge55j6g/N9VM 13 | 5yU1DlQpQ9YQEC3J68yLLAIgLHXG0+iPAzW7xC5iQOi1ALmOkWHLZxkCCPFWvpma 14 | VC8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAeqgAwIBAgIRAKZ8PdUBq8JZn3TULXQauNowCgYIKoZIzj0EAwIwbDEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l 5 | eGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMGwxCzAJ 6 | BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh 7 | bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh 8 | bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASpMguABZP5lCY9CLmJ 9 | /g3kyWdEYdMfo76xkVc8+iJwjgEwrquIH61OHaPRtolp7lIMTayTUxMdwGYd/2Ba 10 | 5pSyo20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG 11 | AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDGPHXDpbeU4RaxdTZmt 12 | F+PeR8C/i0WHUB6Qth7KlUpWMAoGCCqGSM49BAMCA0cAMEQCID/bJ7sDF3zmKPC7 13 | 2Y3A8ogXMAzSCOjfDnnVXTsdB90SAiB3hpQr6uy97AfHmyY4HEebgC0aY6viJTsQ 14 | eQM87gEXEg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbGgAwIBAgIRALhf6HRygm4G4VrBZf85LE0wCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMFYxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG 8 | SM49AwEHA0IABB8JKOAs5vZdO34qt+F4G5ms0F6tGYXX1xdHLRz1Zb6iwEHyu5gj 9 | mQKF4PUNcjwYi8OGKgCXrNTKb6uBgA8PrdCjTTBLMA4GA1UdDwEB/wQEAwIHgDAM 10 | BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIGaXnxVXoSm62rA7aO+K5DXv5wGgeQjf 11 | 8uu/A6tw3zzTMAoGCCqGSM49BAMCA0cAMEQCIFSAg2O0R7gHjeAF3TY0xAZYIJZn 12 | 725hn+mKjUVJHzJTAiB3fs0I1kPGT371FLOhcn7UBuVTBdMI5Df1O6UFoXczyw== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPjCCAeSgAwIBAgIRAOfZOoaTo4baCNa0s+9ZLUwwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR2VLCzNbvys61p+pclfS7nmO3R 9 | oNmtsPCssCgEEpib0ZqyA1wm8Cc80zS+aAZIBvbJFDrTW2pk2qzoUHBalr8zo20w 10 | azAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB 11 | MA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIGaXnxVXoSm62rA7aO+K5DXv5wGg 12 | eQjf8uu/A6tw3zzTMAoGCCqGSM49BAMCA0gAMEUCIQDH02663Ndnge55j6g/N9VM 13 | 5yU1DlQpQ9YQEC3J68yLLAIgLHXG0+iPAzW7xC5iQOi1ALmOkWHLZxkCCPFWvpma 14 | VC8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/1782fc3bda29d27fb683126586882a18e92d79ef8832fd7cd5406a5679c87b31_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQrrDnLQDBWhEga4i 3 | mN2+41Y8K0y1GmRRpgH/gNf4L5ahRANCAAQ7h6kjrMOB+fUR6fwGKntQbykNDpp3 4 | 3rggWsdFXrUj5uvWXFFuPiycx8btgkD4ZZn6NyyyqzyB716swWkH7xjV 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCzCCAbKgAwIBAgIQbJs1ItPtnZ7dHgWL2FxPtTAKBggqhkjOPQQDAjBpMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w 5 | bGUuY29tMB4XDTE5MDQxODEwMTEwMFoXDTI5MDQxNTEwMTEwMFowWDELMAkGA1UE 6 | BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz 7 | Y28xHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggq 8 | hkjOPQMBBwNCAAQ7h6kjrMOB+fUR6fwGKntQbykNDpp33rggWsdFXrUj5uvWXFFu 9 | Piycx8btgkD4ZZn6NyyyqzyB716swWkH7xjVo00wSzAOBgNVHQ8BAf8EBAMCB4Aw 10 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCBml58VV6EputqwO2jviuQ17+cBoHkI 11 | 3/LrvwOrcN880zAKBggqhkjOPQQDAgNHADBEAiBqDi54qbfFS/NmfgP9K6aYovEH 12 | GkVPBt7AafttRxDK4QIgVyHxWMsmyDkonop+URJ+CvM9OhSE/IijxshF3PJrhy4= 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAeqgAwIBAgIRAKZ8PdUBq8JZn3TULXQauNowCgYIKoZIzj0EAwIwbDEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l 5 | eGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMGwxCzAJ 6 | BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh 7 | bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh 8 | bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASpMguABZP5lCY9CLmJ 9 | /g3kyWdEYdMfo76xkVc8+iJwjgEwrquIH61OHaPRtolp7lIMTayTUxMdwGYd/2Ba 10 | 5pSyo20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG 11 | AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDGPHXDpbeU4RaxdTZmt 12 | F+PeR8C/i0WHUB6Qth7KlUpWMAoGCCqGSM49BAMCA0cAMEQCID/bJ7sDF3zmKPC7 13 | 2Y3A8ogXMAzSCOjfDnnVXTsdB90SAiB3hpQr6uy97AfHmyY4HEebgC0aY6viJTsQ 14 | eQM87gEXEg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAeqgAwIBAgIRAKZ8PdUBq8JZn3TULXQauNowCgYIKoZIzj0EAwIwbDEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l 5 | eGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMGwxCzAJ 6 | BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh 7 | bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh 8 | bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASpMguABZP5lCY9CLmJ 9 | /g3kyWdEYdMfo76xkVc8+iJwjgEwrquIH61OHaPRtolp7lIMTayTUxMdwGYd/2Ba 10 | 5pSyo20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG 11 | AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDGPHXDpbeU4RaxdTZmt 12 | F+PeR8C/i0WHUB6Qth7KlUpWMAoGCCqGSM49BAMCA0cAMEQCID/bJ7sDF3zmKPC7 13 | 2Y3A8ogXMAzSCOjfDnnVXTsdB90SAiB3hpQr6uy97AfHmyY4HEebgC0aY6viJTsQ 14 | eQM87gEXEg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWTCCAf+gAwIBAgIQZetltHd1qkH9rrz+qDa3IDAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQxODEwMTEwMFoXDTI5MDQxNTEwMTEwMFowWDELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIB 8 | BggqhkjOPQMBBwNCAAQT1RoV5GQFvhNnHXkTEPjHxH3icuk4UZ3cJnJcy6tTwJU+ 9 | ONtAngvY5MHVPdYn6I24z6FTd7LZ+WjqiHoAwVTZo4GWMIGTMA4GA1UdDwEB/wQE 10 | AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIw 11 | ADArBgNVHSMEJDAigCAxjx1w6W3lOEWsXU2ZrRfj3kfAv4tFh1AekLYeypVKVjAn 12 | BgNVHREEIDAeghNvcmRlcmVyLmV4YW1wbGUuY29tggdvcmRlcmVyMAoGCCqGSM49 13 | BAMCA0gAMEUCIQDVaNQntWIpYBs+vQeJ4ikr2l5MIiSrWIMrHTR7qq9E1wIgTa87 14 | vr5ZiNxdX697TDwjspgtQ2N72zBz86GbCRNU15k= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWU9CmVo6cCo8WK79 3 | 3Gph1gko1Abv7m29C3maOZvDuUqhRANCAAQT1RoV5GQFvhNnHXkTEPjHxH3icuk4 4 | UZ3cJnJcy6tTwJU+ONtAngvY5MHVPdYn6I24z6FTd7LZ+WjqiHoAwVTZ 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/tlsca/318f1d70e96de53845ac5d4d99ad17e3de47c0bf8b4587501e90b61eca954a56_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgLCdoagHY/jsyVBr0 3 | ukTzB25VpfXupTOhJuy9fXyWZFmhRANCAASpMguABZP5lCY9CLmJ/g3kyWdEYdMf 4 | o76xkVc8+iJwjgEwrquIH61OHaPRtolp7lIMTayTUxMdwGYd/2Ba5pSy 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAeqgAwIBAgIRAKZ8PdUBq8JZn3TULXQauNowCgYIKoZIzj0EAwIwbDEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l 5 | eGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMGwxCzAJ 6 | BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh 7 | bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh 8 | bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASpMguABZP5lCY9CLmJ 9 | /g3kyWdEYdMfo76xkVc8+iJwjgEwrquIH61OHaPRtolp7lIMTayTUxMdwGYd/2Ba 10 | 5pSyo20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG 11 | AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDGPHXDpbeU4RaxdTZmt 12 | F+PeR8C/i0WHUB6Qth7KlUpWMAoGCCqGSM49BAMCA0cAMEQCID/bJ7sDF3zmKPC7 13 | 2Y3A8ogXMAzSCOjfDnnVXTsdB90SAiB3hpQr6uy97AfHmyY4HEebgC0aY6viJTsQ 14 | eQM87gEXEg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbGgAwIBAgIRALhf6HRygm4G4VrBZf85LE0wCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMFYxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG 8 | SM49AwEHA0IABB8JKOAs5vZdO34qt+F4G5ms0F6tGYXX1xdHLRz1Zb6iwEHyu5gj 9 | mQKF4PUNcjwYi8OGKgCXrNTKb6uBgA8PrdCjTTBLMA4GA1UdDwEB/wQEAwIHgDAM 10 | BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIGaXnxVXoSm62rA7aO+K5DXv5wGgeQjf 11 | 8uu/A6tw3zzTMAoGCCqGSM49BAMCA0cAMEQCIFSAg2O0R7gHjeAF3TY0xAZYIJZn 12 | 725hn+mKjUVJHzJTAiB3fs0I1kPGT371FLOhcn7UBuVTBdMI5Df1O6UFoXczyw== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPjCCAeSgAwIBAgIRAOfZOoaTo4baCNa0s+9ZLUwwCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMGkxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j 8 | b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR2VLCzNbvys61p+pclfS7nmO3R 9 | oNmtsPCssCgEEpib0ZqyA1wm8Cc80zS+aAZIBvbJFDrTW2pk2qzoUHBalr8zo20w 10 | azAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB 11 | MA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIGaXnxVXoSm62rA7aO+K5DXv5wGg 12 | eQjf8uu/A6tw3zzTMAoGCCqGSM49BAMCA0gAMEUCIQDH02663Ndnge55j6g/N9VM 13 | 5yU1DlQpQ9YQEC3J68yLLAIgLHXG0+iPAzW7xC5iQOi1ALmOkWHLZxkCCPFWvpma 14 | VC8= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/a48a0fbbf5cdd7e0faf954ca03823483b6b4e7d7991be330d6fa49bf8da386ac_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgcyIZJshDGy7WDwpi 3 | h/lIHcDUHqpOFZj9UdT5V3ZHSB2hRANCAAQfCSjgLOb2XTt+KrfheBuZrNBerRmF 4 | 19cXRy0c9WW+osBB8ruYI5kCheD1DXI8GIvDhioAl6zUym+rgYAPD63Q 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICCjCCAbGgAwIBAgIRALhf6HRygm4G4VrBZf85LE0wCgYIKoZIzj0EAwIwaTEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt 5 | cGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMFYxCzAJBgNV 6 | BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp 7 | c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG 8 | SM49AwEHA0IABB8JKOAs5vZdO34qt+F4G5ms0F6tGYXX1xdHLRz1Zb6iwEHyu5gj 9 | mQKF4PUNcjwYi8OGKgCXrNTKb6uBgA8PrdCjTTBLMA4GA1UdDwEB/wQEAwIHgDAM 10 | BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIGaXnxVXoSm62rA7aO+K5DXv5wGgeQjf 11 | 8uu/A6tw3zzTMAoGCCqGSM49BAMCA0cAMEQCIFSAg2O0R7gHjeAF3TY0xAZYIJZn 12 | 725hn+mKjUVJHzJTAiB3fs0I1kPGT371FLOhcn7UBuVTBdMI5Df1O6UFoXczyw== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAeqgAwIBAgIRAKZ8PdUBq8JZn3TULXQauNowCgYIKoZIzj0EAwIwbDEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l 5 | eGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMGwxCzAJ 6 | BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh 7 | bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh 8 | bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASpMguABZP5lCY9CLmJ 9 | /g3kyWdEYdMfo76xkVc8+iJwjgEwrquIH61OHaPRtolp7lIMTayTUxMdwGYd/2Ba 10 | 5pSyo20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG 11 | AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDGPHXDpbeU4RaxdTZmt 12 | F+PeR8C/i0WHUB6Qth7KlUpWMAoGCCqGSM49BAMCA0cAMEQCID/bJ7sDF3zmKPC7 13 | 2Y3A8ogXMAzSCOjfDnnVXTsdB90SAiB3hpQr6uy97AfHmyY4HEebgC0aY6viJTsQ 14 | eQM87gEXEg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICQzCCAeqgAwIBAgIRAKZ8PdUBq8JZn3TULXQauNowCgYIKoZIzj0EAwIwbDEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l 5 | eGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBaMGwxCzAJ 6 | BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh 7 | bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh 8 | bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASpMguABZP5lCY9CLmJ 9 | /g3kyWdEYdMfo76xkVc8+iJwjgEwrquIH61OHaPRtolp7lIMTayTUxMdwGYd/2Ba 10 | 5pSyo20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG 11 | AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIDGPHXDpbeU4RaxdTZmt 12 | F+PeR8C/i0WHUB6Qth7KlUpWMAoGCCqGSM49BAMCA0cAMEQCID/bJ7sDF3zmKPC7 13 | 2Y3A8ogXMAzSCOjfDnnVXTsdB90SAiB3hpQr6uy97AfHmyY4HEebgC0aY6viJTsQ 14 | eQM87gEXEg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKzCCAdKgAwIBAgIQfYWDnBzVTqMzUzFQpUuHlzAKBggqhkjOPQQDAjBsMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 5 | YW1wbGUuY29tMB4XDTE5MDQxODEwMTEwMFoXDTI5MDQxNTEwMTEwMFowVjELMAkG 6 | A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu 7 | Y2lzY28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI 8 | KoZIzj0DAQcDQgAEolcBtBXZrwn6l6dXPeIHI2JtaJdf9HEKnM5nNQrmfaFrPJhq 9 | qIZpDTLVVrJL2cOFDSC+3BhEJt03f3nMdUdQ76NsMGowDgYDVR0PAQH/BAQDAgWg 10 | MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMCsG 11 | A1UdIwQkMCKAIDGPHXDpbeU4RaxdTZmtF+PeR8C/i0WHUB6Qth7KlUpWMAoGCCqG 12 | SM49BAMCA0cAMEQCIFxJaoWYVjyaB/lTNADwPb/uqFuAk1XubvkPfJLBvUZKAiBM 13 | CMu8wjW6hLbzY3epUoZmbkX4mqEAt2m2kRWwEg++Zw== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgCSw27+oXEPSdCa1w 3 | I1H+9kxi545mlg0rlzqc+pTw8tehRANCAASiVwG0FdmvCfqXp1c94gcjYm1ol1/0 4 | cQqczmc1CuZ9oWs8mGqohmkNMtVWskvZw4UNIL7cGEQm3Td/ecx1R1Dv 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUDCCAfegAwIBAgIQa8V84jLgDyV46MscAshovjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | X3DCxzOVg5/SaZwWxJhxu92XNo46EwppeYihCvdNjMnxqkR9rKDBWKDOsT2LIAIZ 10 | 4mgdVky1NLH3lXUwgvRGQ6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDV 12 | UDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjOPQQDAgNHADBE 13 | AiAELrK12UiKE7518u6OlXd5/Jj6N0SOkefPnE0uCxwxfwIgeq7Dsniem9S727Nj 14 | dNatWrw7ETq4xUid4LNCKwoVgy4= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/ca/d5503623a4b80c456159e292af7cec09d33151ad30436d22c8120ba5bdd67f80_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQKtdYwjDLpkzRm+D 3 | D164BzSUFlhTbrx0VhlHRV5mcSihRANCAARfcMLHM5WDn9JpnBbEmHG73Zc2jjoT 4 | Cml5iKEK902MyfGqRH2soMFYoM6xPYsgAhniaB1WTLU0sfeVdTCC9EZD 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAdCgAwIBAgIQUVjdaixDAVgCV78Zw/GRzzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFkFkbWluQG9y 8 | ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARCptqhppk3 9 | bYi/06k8CpF6nbTmB+Nflq3t220upsWOIQCwZ8AONylVRaL1Oyl4HAfGyvYoRR9E 10 | QyecbSQMNitCo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV 11 | HSMEJDAigCDVUDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjO 12 | PQQDAgNHADBEAiA3gOKWJSEc5UHybijLYoxaHCQqXoeNvgVICGhctYANmgIgb/bq 13 | 2+4ppYcrrJXyM9qEColcc4eG2biKl9L6F4ct0yU= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUDCCAfegAwIBAgIQa8V84jLgDyV46MscAshovjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | X3DCxzOVg5/SaZwWxJhxu92XNo46EwppeYihCvdNjMnxqkR9rKDBWKDOsT2LIAIZ 10 | 4mgdVky1NLH3lXUwgvRGQ6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDV 12 | UDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjOPQQDAgNHADBE 13 | AiAELrK12UiKE7518u6OlXd5/Jj6N0SOkefPnE0uCxwxfwIgeq7Dsniem9S727Nj 14 | dNatWrw7ETq4xUid4LNCKwoVgy4= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/msp/config.yaml: -------------------------------------------------------------------------------- 1 | NodeOUs: 2 | Enable: true 3 | ClientOUIdentifier: 4 | Certificate: cacerts/ca.org1.example.com-cert.pem 5 | OrganizationalUnitIdentifier: client 6 | PeerOUIdentifier: 7 | Certificate: cacerts/ca.org1.example.com-cert.pem 8 | OrganizationalUnitIdentifier: peer 9 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWDCCAf6gAwIBAgIRAOkdeD6GO6xdHYq8tNo6dzkwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ/5V3Hj7Y3p28zwOS4tg3JXC0zMgtJNCI2wH7+Nc1s0kUIYKXUxcDeB 10 | 9TKLRf1lUjXx8YXpeaRJmZBpsu72AaWjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgfcsRoHUNMms5xsTelsmAjD/TD3FrxNUl3iJ5LDsSyWwwCgYIKoZIzj0E 13 | AwIDSAAwRQIhAMRz+lpkN+SQb0yMu1JJ7Pu2De5180G/VLsR8B5IUB2/AiA6qs4A 14 | 4KqNy3+uhfw8NkhFzesPFC0eCCv6Vp1Ok+7bKw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAdCgAwIBAgIQUVjdaixDAVgCV78Zw/GRzzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFkFkbWluQG9y 8 | ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARCptqhppk3 9 | bYi/06k8CpF6nbTmB+Nflq3t220upsWOIQCwZ8AONylVRaL1Oyl4HAfGyvYoRR9E 10 | QyecbSQMNitCo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV 11 | HSMEJDAigCDVUDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjO 12 | PQQDAgNHADBEAiA3gOKWJSEc5UHybijLYoxaHCQqXoeNvgVICGhctYANmgIgb/bq 13 | 2+4ppYcrrJXyM9qEColcc4eG2biKl9L6F4ct0yU= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUDCCAfegAwIBAgIQa8V84jLgDyV46MscAshovjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | X3DCxzOVg5/SaZwWxJhxu92XNo46EwppeYihCvdNjMnxqkR9rKDBWKDOsT2LIAIZ 10 | 4mgdVky1NLH3lXUwgvRGQ6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDV 12 | UDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjOPQQDAgNHADBE 13 | AiAELrK12UiKE7518u6OlXd5/Jj6N0SOkefPnE0uCxwxfwIgeq7Dsniem9S727Nj 14 | dNatWrw7ETq4xUid4LNCKwoVgy4= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/config.yaml: -------------------------------------------------------------------------------- 1 | NodeOUs: 2 | Enable: true 3 | ClientOUIdentifier: 4 | Certificate: cacerts/ca.org1.example.com-cert.pem 5 | OrganizationalUnitIdentifier: client 6 | PeerOUIdentifier: 7 | Certificate: cacerts/ca.org1.example.com-cert.pem 8 | OrganizationalUnitIdentifier: peer 9 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/23514f7487dfda568dd7847fed648ef40ac209802fb385f806ceb33c1721b7f0_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgz3EqwYx3Rjf/huUQ 3 | 6OIaOU3qGrXoNnBKxWRinzAwAh2hRANCAAQC4v22rRO3x285TQefW89OzfDw2obf 4 | D9RSVpPTzeTaKqPkUaHjaT0RlpA/lJ8/UnmVyl4Ht/xpPAYQZxq+02LO 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKDCCAc6gAwIBAgIQFzYDtyL3oIOufcDxKDm9MjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMC5vcmcx 8 | LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAuL9tq0Tt8dv 9 | OU0Hn1vPTs3w8NqG3w/UUlaT083k2iqj5FGh42k9EZaQP5SfP1J5lcpeB7f8aTwG 10 | EGcavtNizqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j 11 | BCQwIoAg1VA2I6S4DEVhWeKSr3zsCdMxUa0wQ20iyBILpb3Wf4AwCgYIKoZIzj0E 12 | AwIDSAAwRQIhALbsYz5xEk8LkJ3IzjZRcZf7n9cI0AUhTKvYVXY45ks4AiAS1HKS 13 | J75jvuQpNRADVbg/VGv+09DniNIXZ/XWncXFnw== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWDCCAf6gAwIBAgIRAOkdeD6GO6xdHYq8tNo6dzkwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ/5V3Hj7Y3p28zwOS4tg3JXC0zMgtJNCI2wH7+Nc1s0kUIYKXUxcDeB 10 | 9TKLRf1lUjXx8YXpeaRJmZBpsu72AaWjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgfcsRoHUNMms5xsTelsmAjD/TD3FrxNUl3iJ5LDsSyWwwCgYIKoZIzj0E 13 | AwIDSAAwRQIhAMRz+lpkN+SQb0yMu1JJ7Pu2De5180G/VLsR8B5IUB2/AiA6qs4A 14 | 4KqNy3+uhfw8NkhFzesPFC0eCCv6Vp1Ok+7bKw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWDCCAf6gAwIBAgIRAOkdeD6GO6xdHYq8tNo6dzkwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ/5V3Hj7Y3p28zwOS4tg3JXC0zMgtJNCI2wH7+Nc1s0kUIYKXUxcDeB 10 | 9TKLRf1lUjXx8YXpeaRJmZBpsu72AaWjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgfcsRoHUNMms5xsTelsmAjD/TD3FrxNUl3iJ5LDsSyWwwCgYIKoZIzj0E 13 | AwIDSAAwRQIhAMRz+lpkN+SQb0yMu1JJ7Pu2De5180G/VLsR8B5IUB2/AiA6qs4A 14 | 4KqNy3+uhfw8NkhFzesPFC0eCCv6Vp1Ok+7bKw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICZzCCAg2gAwIBAgIQEhIfdJejRWnBhp1MIsdeBDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29t 8 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFWQIStvplcYVrQkazK4VjJGTYe2s 9 | yfog3PD52Or80nW9lMj49NMZj26UKtk4RuG8qk3I86jqZwT4ahpst8ipNKOBlzCB 10 | lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC 11 | MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgfcsRoHUNMms5xsTelsmAjD/TD3Fr 12 | xNUl3iJ5LDsSyWwwKAYDVR0RBCEwH4IWcGVlcjAub3JnMS5leGFtcGxlLmNvbYIF 13 | cGVlcjAwCgYIKoZIzj0EAwIDSAAwRQIhAJL2/sLZbzGJo3k/Sk2vD6qZHwzPtmV5 14 | oPRDO/emWfORAiBmgeeTa1mmiBbALX2OOHuoRQPXCj85WxZ12U/3omOnOA== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg4CnG3dxrrMfJLe1I 3 | iU/sJsV3ChI4SYbZxdv6/p2GPO6hRANCAAQVZAhK2+mVxhWtCRrMrhWMkZNh7azJ 4 | +iDc8PnY6vzSdb2UyPj00xmPbpQq2ThG4byqTcjzqOpnBPhqGmy3yKk0 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAdCgAwIBAgIQUVjdaixDAVgCV78Zw/GRzzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFkFkbWluQG9y 8 | ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARCptqhppk3 9 | bYi/06k8CpF6nbTmB+Nflq3t220upsWOIQCwZ8AONylVRaL1Oyl4HAfGyvYoRR9E 10 | QyecbSQMNitCo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV 11 | HSMEJDAigCDVUDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjO 12 | PQQDAgNHADBEAiA3gOKWJSEc5UHybijLYoxaHCQqXoeNvgVICGhctYANmgIgb/bq 13 | 2+4ppYcrrJXyM9qEColcc4eG2biKl9L6F4ct0yU= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUDCCAfegAwIBAgIQa8V84jLgDyV46MscAshovjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | X3DCxzOVg5/SaZwWxJhxu92XNo46EwppeYihCvdNjMnxqkR9rKDBWKDOsT2LIAIZ 10 | 4mgdVky1NLH3lXUwgvRGQ6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDV 12 | UDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjOPQQDAgNHADBE 13 | AiAELrK12UiKE7518u6OlXd5/Jj6N0SOkefPnE0uCxwxfwIgeq7Dsniem9S727Nj 14 | dNatWrw7ETq4xUid4LNCKwoVgy4= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/config.yaml: -------------------------------------------------------------------------------- 1 | NodeOUs: 2 | Enable: true 3 | ClientOUIdentifier: 4 | Certificate: cacerts/ca.org1.example.com-cert.pem 5 | OrganizationalUnitIdentifier: client 6 | PeerOUIdentifier: 7 | Certificate: cacerts/ca.org1.example.com-cert.pem 8 | OrganizationalUnitIdentifier: peer 9 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/535cf6c48f2857b56e03b26ca5e839965485a600b467f83f53ae0361558e6601_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgAmZ8ShyoantKKs03 3 | Jyz+yzYouIDiTGAKWUE01V8TFd+hRANCAAToG9wody0I4cua2f7u1SkgeDd6T9qp 4 | 5vlD4zHPIKqyLC0xljvcQq+RJAEtr3Dm7RK9i/0i30FqV3r+Am+quhCu 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKDCCAc+gAwIBAgIRAMYq0oKWXvHxBkKugQEc0pIwCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAxMTAw 6 | WjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjEub3Jn 8 | MS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOgb3Ch3LQjh 9 | y5rZ/u7VKSB4N3pP2qnm+UPjMc8gqrIsLTGWO9xCr5EkAS2vcObtEr2L/SLfQWpX 10 | ev4Cb6q6EK6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud 11 | IwQkMCKAINVQNiOkuAxFYVnikq987AnTMVGtMENtIsgSC6W91n+AMAoGCCqGSM49 12 | BAMCA0cAMEQCICEQeECezGeF422ULj90nlNgLT/rp1B2mPEHrCwNcslEAiB0jGg+ 13 | 8h8867WrfR4nXetjLM/vEcZU+zJ02IFkrnPIyQ== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWDCCAf6gAwIBAgIRAOkdeD6GO6xdHYq8tNo6dzkwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ/5V3Hj7Y3p28zwOS4tg3JXC0zMgtJNCI2wH7+Nc1s0kUIYKXUxcDeB 10 | 9TKLRf1lUjXx8YXpeaRJmZBpsu72AaWjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgfcsRoHUNMms5xsTelsmAjD/TD3FrxNUl3iJ5LDsSyWwwCgYIKoZIzj0E 13 | AwIDSAAwRQIhAMRz+lpkN+SQb0yMu1JJ7Pu2De5180G/VLsR8B5IUB2/AiA6qs4A 14 | 4KqNy3+uhfw8NkhFzesPFC0eCCv6Vp1Ok+7bKw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWDCCAf6gAwIBAgIRAOkdeD6GO6xdHYq8tNo6dzkwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ/5V3Hj7Y3p28zwOS4tg3JXC0zMgtJNCI2wH7+Nc1s0kUIYKXUxcDeB 10 | 9TKLRf1lUjXx8YXpeaRJmZBpsu72AaWjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgfcsRoHUNMms5xsTelsmAjD/TD3FrxNUl3iJ5LDsSyWwwCgYIKoZIzj0E 13 | AwIDSAAwRQIhAMRz+lpkN+SQb0yMu1JJ7Pu2De5180G/VLsR8B5IUB2/AiA6qs4A 14 | 4KqNy3+uhfw8NkhFzesPFC0eCCv6Vp1Ok+7bKw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICZzCCAg2gAwIBAgIQciFylJyqrz9vd5ZD30xmzDAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcxLmV4YW1wbGUuY29t 8 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMlNwfPEvL7eRmFE3wh57SItCqaRe 9 | 1gjWS+cWTLQ0iZ3DK3/q8OMpayLoAyAtFUc3OGIAy5tQv1iXJVveJln7OqOBlzCB 10 | lDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC 11 | MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgfcsRoHUNMms5xsTelsmAjD/TD3Fr 12 | xNUl3iJ5LDsSyWwwKAYDVR0RBCEwH4IWcGVlcjEub3JnMS5leGFtcGxlLmNvbYIF 13 | cGVlcjEwCgYIKoZIzj0EAwIDSAAwRQIhAJ1zjsaTzghagPzSIwaUVAh82IRQwt0u 14 | aAUqOa6FBkOTAiBwfEQRoZ0Ue9xWlT2I8CiSt4a65lwBFLe9GrkgweFEvg== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgK3K524tXCcn6ezWM 3 | K6+1PQ2oG3vuW3GeHirh7cP8d7mhRANCAAQyU3B88S8vt5GYUTfCHntIi0KppF7W 4 | CNZL5xZMtDSJncMrf+rw4ylrIugDIC0VRzc4YgDLm1C/WJclW94mWfs6 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/tlsca/7dcb11a0750d326b39c6c4de96c9808c3fd30f716bc4d525de22792c3b12c96c_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWnMToArOQQw3wDl/ 3 | Z14rex+lCptRcEEhDLjoZUsWE6yhRANCAASf+Vdx4+2N6dvM8DkuLYNyVwtMzILS 4 | TQiNsB+/jXNbNJFCGCl1MXA3gfUyi0X9ZVI18fGF6XmkSZmQabLu9gGl 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWDCCAf6gAwIBAgIRAOkdeD6GO6xdHYq8tNo6dzkwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ/5V3Hj7Y3p28zwOS4tg3JXC0zMgtJNCI2wH7+Nc1s0kUIYKXUxcDeB 10 | 9TKLRf1lUjXx8YXpeaRJmZBpsu72AaWjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgfcsRoHUNMms5xsTelsmAjD/TD3FrxNUl3iJ5LDsSyWwwCgYIKoZIzj0E 13 | AwIDSAAwRQIhAMRz+lpkN+SQb0yMu1JJ7Pu2De5180G/VLsR8B5IUB2/AiA6qs4A 14 | 4KqNy3+uhfw8NkhFzesPFC0eCCv6Vp1Ok+7bKw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAdCgAwIBAgIQUVjdaixDAVgCV78Zw/GRzzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFkFkbWluQG9y 8 | ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARCptqhppk3 9 | bYi/06k8CpF6nbTmB+Nflq3t220upsWOIQCwZ8AONylVRaL1Oyl4HAfGyvYoRR9E 10 | QyecbSQMNitCo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV 11 | HSMEJDAigCDVUDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjO 12 | PQQDAgNHADBEAiA3gOKWJSEc5UHybijLYoxaHCQqXoeNvgVICGhctYANmgIgb/bq 13 | 2+4ppYcrrJXyM9qEColcc4eG2biKl9L6F4ct0yU= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUDCCAfegAwIBAgIQa8V84jLgDyV46MscAshovjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | X3DCxzOVg5/SaZwWxJhxu92XNo46EwppeYihCvdNjMnxqkR9rKDBWKDOsT2LIAIZ 10 | 4mgdVky1NLH3lXUwgvRGQ6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDV 12 | UDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjOPQQDAgNHADBE 13 | AiAELrK12UiKE7518u6OlXd5/Jj6N0SOkefPnE0uCxwxfwIgeq7Dsniem9S727Nj 14 | dNatWrw7ETq4xUid4LNCKwoVgy4= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/9fd52ec8036737bfac8982181c7a16fee300c814e14a76d2996ef716e2d7b02e_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgA75K6Yc0EkFhfJ9g 3 | Tig96A+F3siebxaUCryz/L3cyw+hRANCAARCptqhppk3bYi/06k8CpF6nbTmB+Nf 4 | lq3t220upsWOIQCwZ8AONylVRaL1Oyl4HAfGyvYoRR9EQyecbSQMNitC 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAdCgAwIBAgIQUVjdaixDAVgCV78Zw/GRzzAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFkFkbWluQG9y 8 | ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARCptqhppk3 9 | bYi/06k8CpF6nbTmB+Nflq3t220upsWOIQCwZ8AONylVRaL1Oyl4HAfGyvYoRR9E 10 | QyecbSQMNitCo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV 11 | HSMEJDAigCDVUDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjO 12 | PQQDAgNHADBEAiA3gOKWJSEc5UHybijLYoxaHCQqXoeNvgVICGhctYANmgIgb/bq 13 | 2+4ppYcrrJXyM9qEColcc4eG2biKl9L6F4ct0yU= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWDCCAf6gAwIBAgIRAOkdeD6GO6xdHYq8tNo6dzkwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ/5V3Hj7Y3p28zwOS4tg3JXC0zMgtJNCI2wH7+Nc1s0kUIYKXUxcDeB 10 | 9TKLRf1lUjXx8YXpeaRJmZBpsu72AaWjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgfcsRoHUNMms5xsTelsmAjD/TD3FrxNUl3iJ5LDsSyWwwCgYIKoZIzj0E 13 | AwIDSAAwRQIhAMRz+lpkN+SQb0yMu1JJ7Pu2De5180G/VLsR8B5IUB2/AiA6qs4A 14 | 4KqNy3+uhfw8NkhFzesPFC0eCCv6Vp1Ok+7bKw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWDCCAf6gAwIBAgIRAOkdeD6GO6xdHYq8tNo6dzkwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ/5V3Hj7Y3p28zwOS4tg3JXC0zMgtJNCI2wH7+Nc1s0kUIYKXUxcDeB 10 | 9TKLRf1lUjXx8YXpeaRJmZBpsu72AaWjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgfcsRoHUNMms5xsTelsmAjD/TD3FrxNUl3iJ5LDsSyWwwCgYIKoZIzj0E 13 | AwIDSAAwRQIhAMRz+lpkN+SQb0yMu1JJ7Pu2De5180G/VLsR8B5IUB2/AiA6qs4A 14 | 4KqNy3+uhfw8NkhFzesPFC0eCCv6Vp1Ok+7bKw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPDCCAeKgAwIBAgIRAP0eSAEfD4Ody4dfP8aMyqYwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMnrTEMCc+5dBhnZyHIFVLo2XdQk 9 | 1RPpHySo5Auhl4KpBfeyvbG24BPfFc5H9R8YN2EJxHVTbdF5eVVIlA6RxDWjbDBq 10 | MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw 11 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCB9yxGgdQ0yaznGxN6WyYCMP9MPcWvE 12 | 1SXeInksOxLJbDAKBggqhkjOPQQDAgNIADBFAiEA95zjNY7Dg1OZ772V5mvpiI04 13 | lCsVshPkIW8Cgr3+mqECIFJ0DejZ1HE0g/zmG3qr3XGLr/MU7bu8zTdL7+hhHVoN 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgR6rSJeRuQKcQtFOv 3 | HyKrcSKK7XFxQbA0dhPvItt+yT+hRANCAATJ60xDAnPuXQYZ2chyBVS6Nl3UJNUT 4 | 6R8kqOQLoZeCqQX3sr2xtuAT3xXOR/UfGDdhCcR1U23ReXlVSJQOkcQ1 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAdCgAwIBAgIQMyOQerEkYVrAGSkxV+TjZTAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFlVzZXIxQG9y 8 | ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQw0v13NWEF 9 | vWFSp09SZbKcUWwyhmq9NTdVqR61MG7cMiatwxhwNsRp3vwtVYf6f7OpHnmtgZHy 10 | ZGzGweb9cXxyo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV 11 | HSMEJDAigCDVUDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjO 12 | PQQDAgNHADBEAiB1Nbz7mflow6Gr67SEbkeq+2Jom7L/0tyBtsOS1V7GWAIgIQ+d 13 | QvOS7slkKJQtcYuiMSZtAJoQPiJOSpIkoic1yZg= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUDCCAfegAwIBAgIQa8V84jLgDyV46MscAshovjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | X3DCxzOVg5/SaZwWxJhxu92XNo46EwppeYihCvdNjMnxqkR9rKDBWKDOsT2LIAIZ 10 | 4mgdVky1NLH3lXUwgvRGQ6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDV 12 | UDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjOPQQDAgNHADBE 13 | AiAELrK12UiKE7518u6OlXd5/Jj6N0SOkefPnE0uCxwxfwIgeq7Dsniem9S727Nj 14 | dNatWrw7ETq4xUid4LNCKwoVgy4= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/a4bb9353605d18335cfe948b070087e78e5ab85a672de997249f49e93469167a_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTwXhFmUnI77sbT1V 3 | 8JPDsUodHq6HBtcY08D/ksNbi0OhRANCAAQw0v13NWEFvWFSp09SZbKcUWwyhmq9 4 | NTdVqR61MG7cMiatwxhwNsRp3vwtVYf6f7OpHnmtgZHyZGzGweb9cXxy 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAdCgAwIBAgIQMyOQerEkYVrAGSkxV+TjZTAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MGwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMQ8wDQYDVQQLEwZjbGllbnQxHzAdBgNVBAMMFlVzZXIxQG9y 8 | ZzEuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQw0v13NWEF 9 | vWFSp09SZbKcUWwyhmq9NTdVqR61MG7cMiatwxhwNsRp3vwtVYf6f7OpHnmtgZHy 10 | ZGzGweb9cXxyo00wSzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNV 11 | HSMEJDAigCDVUDYjpLgMRWFZ4pKvfOwJ0zFRrTBDbSLIEgulvdZ/gDAKBggqhkjO 12 | PQQDAgNHADBEAiB1Nbz7mflow6Gr67SEbkeq+2Jom7L/0tyBtsOS1V7GWAIgIQ+d 13 | QvOS7slkKJQtcYuiMSZtAJoQPiJOSpIkoic1yZg= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWDCCAf6gAwIBAgIRAOkdeD6GO6xdHYq8tNo6dzkwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ/5V3Hj7Y3p28zwOS4tg3JXC0zMgtJNCI2wH7+Nc1s0kUIYKXUxcDeB 10 | 9TKLRf1lUjXx8YXpeaRJmZBpsu72AaWjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgfcsRoHUNMms5xsTelsmAjD/TD3FrxNUl3iJ5LDsSyWwwCgYIKoZIzj0E 13 | AwIDSAAwRQIhAMRz+lpkN+SQb0yMu1JJ7Pu2De5180G/VLsR8B5IUB2/AiA6qs4A 14 | 4KqNy3+uhfw8NkhFzesPFC0eCCv6Vp1Ok+7bKw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWDCCAf6gAwIBAgIRAOkdeD6GO6xdHYq8tNo6dzkwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G 8 | A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 9 | AwEHA0IABJ/5V3Hj7Y3p28zwOS4tg3JXC0zMgtJNCI2wH7+Nc1s0kUIYKXUxcDeB 10 | 9TKLRf1lUjXx8YXpeaRJmZBpsu72AaWjbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV 11 | HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV 12 | HQ4EIgQgfcsRoHUNMms5xsTelsmAjD/TD3FrxNUl3iJ5LDsSyWwwCgYIKoZIzj0E 13 | AwIDSAAwRQIhAMRz+lpkN+SQb0yMu1JJ7Pu2De5180G/VLsR8B5IUB2/AiA6qs4A 14 | 4KqNy3+uhfw8NkhFzesPFC0eCCv6Vp1Ok+7bKw== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICPDCCAeKgAwIBAgIRAIBRNLYdP27r7eyYr2OReqMwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBStGGO/ll3CpzYlc04sRjiuKPvx 9 | XH+X7FTxNuVLVUCEq1OcYxfUKLit2oCfxflp+LvJIlkugG/A65mSft+5iLWjbDBq 10 | MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw 11 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCB9yxGgdQ0yaznGxN6WyYCMP9MPcWvE 12 | 1SXeInksOxLJbDAKBggqhkjOPQQDAgNIADBFAiEA7xaPyqOv65TS6X57IwqnCKfY 13 | OXaowY0X7+h0I/syicMCIDcty9A99+2SOOuyOMkrgr9fnN5ckg2rlLuLIPF1mcvv 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg333PUs5wTCFQ5EYR 3 | fKGuaoUKsNLrW2eUKXQ2lof2dbahRANCAAQUrRhjv5Zdwqc2JXNOLEY4rij78Vx/ 4 | l+xU8TblS1VAhKtTnGMX1Ci4rdqAn8X5afi7ySJZLoBvwOuZkn7fuYi1 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/ca/4d05525decf984c650fc68d627810871259b0cf854f73b29968794be6921a7e9_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfgc+D+eJ00/LTWrJ 3 | k7IOZQUuEvk+isjROUu74RYRj3ChRANCAAQnJr5nDzBF71DR5SG4meTh4CdxOw5y 4 | VGF4hyUjWVLPiVIP55f8QnYtVkNnqlLY+zGsuiTb9UOH6M7krzcb+9dH 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUTCCAfegAwIBAgIQGwW8j36XHNANMp/rsHVJDjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | Jya+Zw8wRe9Q0eUhuJnk4eAncTsOclRheIclI1lSz4lSD+eX/EJ2LVZDZ6pS2Psx 10 | rLok2/VDh+jO5K83G/vXR6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBN 12 | BVJd7PmExlD8aNYngQhxJZsM+FT3OymWh5S+aSGn6TAKBggqhkjOPQQDAgNIADBF 13 | AiEAr4et5NZppN6rwCi3xLchAZ9IAkJCV41P76i3zG528d8CIF3W+HHJk5dimCmh 14 | /1UnWCktDIfAwVfgzMzLssxAbC+b 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKjCCAdGgAwIBAgIRAOudV5+eSKby6XlCNflGD1UwCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAxMTAw 6 | WjBsMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEPMA0GA1UECxMGY2xpZW50MR8wHQYDVQQDDBZBZG1pbkBv 8 | cmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElICqSUl+ 9 | uMJTRjCYmabRdazmUAGEUjAG9c18uzkZJv1EElVK8+QTu87SkJwciMUYfRcAT3Zy 10 | JazaLJJb71j0NqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYD 11 | VR0jBCQwIoAgTQVSXez5hMZQ/GjWJ4EIcSWbDPhU9zsploeUvmkhp+kwCgYIKoZI 12 | zj0EAwIDRwAwRAIgSGmdcO6gonZZLVDa7G3ApBWt5L6lh8qkkVqPtSQgj70CICUI 13 | 54+iWwAl1fd3r/TiFLUgyGoVuBEg7/qqTMOXqw10 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUTCCAfegAwIBAgIQGwW8j36XHNANMp/rsHVJDjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | Jya+Zw8wRe9Q0eUhuJnk4eAncTsOclRheIclI1lSz4lSD+eX/EJ2LVZDZ6pS2Psx 10 | rLok2/VDh+jO5K83G/vXR6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBN 12 | BVJd7PmExlD8aNYngQhxJZsM+FT3OymWh5S+aSGn6TAKBggqhkjOPQQDAgNIADBF 13 | AiEAr4et5NZppN6rwCi3xLchAZ9IAkJCV41P76i3zG528d8CIF3W+HHJk5dimCmh 14 | /1UnWCktDIfAwVfgzMzLssxAbC+b 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/msp/config.yaml: -------------------------------------------------------------------------------- 1 | NodeOUs: 2 | Enable: true 3 | ClientOUIdentifier: 4 | Certificate: cacerts/ca.org2.example.com-cert.pem 5 | OrganizationalUnitIdentifier: client 6 | PeerOUIdentifier: 7 | Certificate: cacerts/ca.org2.example.com-cert.pem 8 | OrganizationalUnitIdentifier: peer 9 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf2gAwIBAgIQJ+XJmdvDQqcvykhx+6hn+DAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEBDUMIp8xt5C0iou8NDDIcrmI748yY6o3UK7qV2+18vOyGx06LYkIubr4 10 | 9bdFBrvXTWCIgTEy64o2Qoys1RJkfKNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1Ud 11 | JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1Ud 12 | DgQiBCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT+cFNrqQqhko51zAKBggqhkjOPQQD 13 | AgNIADBFAiEAh1FifNANYh3flUlGG4r+HmhOtLw0jXWExiFnYl9l8EUCIHBBh7zJ 14 | 3ZSezjKHPGQ89uhD8qzEkUhun4ijKucw++Dj 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKjCCAdGgAwIBAgIRAOudV5+eSKby6XlCNflGD1UwCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAxMTAw 6 | WjBsMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEPMA0GA1UECxMGY2xpZW50MR8wHQYDVQQDDBZBZG1pbkBv 8 | cmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElICqSUl+ 9 | uMJTRjCYmabRdazmUAGEUjAG9c18uzkZJv1EElVK8+QTu87SkJwciMUYfRcAT3Zy 10 | JazaLJJb71j0NqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYD 11 | VR0jBCQwIoAgTQVSXez5hMZQ/GjWJ4EIcSWbDPhU9zsploeUvmkhp+kwCgYIKoZI 12 | zj0EAwIDRwAwRAIgSGmdcO6gonZZLVDa7G3ApBWt5L6lh8qkkVqPtSQgj70CICUI 13 | 54+iWwAl1fd3r/TiFLUgyGoVuBEg7/qqTMOXqw10 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUTCCAfegAwIBAgIQGwW8j36XHNANMp/rsHVJDjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | Jya+Zw8wRe9Q0eUhuJnk4eAncTsOclRheIclI1lSz4lSD+eX/EJ2LVZDZ6pS2Psx 10 | rLok2/VDh+jO5K83G/vXR6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBN 12 | BVJd7PmExlD8aNYngQhxJZsM+FT3OymWh5S+aSGn6TAKBggqhkjOPQQDAgNIADBF 13 | AiEAr4et5NZppN6rwCi3xLchAZ9IAkJCV41P76i3zG528d8CIF3W+HHJk5dimCmh 14 | /1UnWCktDIfAwVfgzMzLssxAbC+b 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/config.yaml: -------------------------------------------------------------------------------- 1 | NodeOUs: 2 | Enable: true 3 | ClientOUIdentifier: 4 | Certificate: cacerts/ca.org2.example.com-cert.pem 5 | OrganizationalUnitIdentifier: client 6 | PeerOUIdentifier: 7 | Certificate: cacerts/ca.org2.example.com-cert.pem 8 | OrganizationalUnitIdentifier: peer 9 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/b2d760c0e24deb2c081df22b98cdaaa72166fe24f2a0d7394a767264af5bfa86_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgl3zeAkxCbPos3uQZ 3 | qNm65j9JI3pTAys0zI5UQZ+mdrChRANCAARcS0ZlN//QWEUFmtWHeH7MYbTeIpXI 4 | sqKRHIZWj5nx/MBYttsDptGmDo3bsBJs0mi5qRh/bUU+0ed4RQiwHk4/ 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICJzCCAc6gAwIBAgIQAez+dImWitRVx8AQWsULujAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMC5vcmcy 8 | LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXEtGZTf/0FhF 9 | BZrVh3h+zGG03iKVyLKikRyGVo+Z8fzAWLbbA6bRpg6N27ASbNJouakYf21FPtHn 10 | eEUIsB5OP6NNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j 11 | BCQwIoAgTQVSXez5hMZQ/GjWJ4EIcSWbDPhU9zsploeUvmkhp+kwCgYIKoZIzj0E 12 | AwIDRwAwRAIgVvWPZb9weVtGG0pJECFoKcS/vB2nPUqqIP6uGwLz790CIAa73+ch 13 | 900ie24oo+X2trPqaUSpDMLfocY4s7aAOL62 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf2gAwIBAgIQJ+XJmdvDQqcvykhx+6hn+DAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEBDUMIp8xt5C0iou8NDDIcrmI748yY6o3UK7qV2+18vOyGx06LYkIubr4 10 | 9bdFBrvXTWCIgTEy64o2Qoys1RJkfKNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1Ud 11 | JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1Ud 12 | DgQiBCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT+cFNrqQqhko51zAKBggqhkjOPQQD 13 | AgNIADBFAiEAh1FifNANYh3flUlGG4r+HmhOtLw0jXWExiFnYl9l8EUCIHBBh7zJ 14 | 3ZSezjKHPGQ89uhD8qzEkUhun4ijKucw++Dj 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf2gAwIBAgIQJ+XJmdvDQqcvykhx+6hn+DAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEBDUMIp8xt5C0iou8NDDIcrmI748yY6o3UK7qV2+18vOyGx06LYkIubr4 10 | 9bdFBrvXTWCIgTEy64o2Qoys1RJkfKNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1Ud 11 | JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1Ud 12 | DgQiBCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT+cFNrqQqhko51zAKBggqhkjOPQQD 13 | AgNIADBFAiEAh1FifNANYh3flUlGG4r+HmhOtLw0jXWExiFnYl9l8EUCIHBBh7zJ 14 | 3ZSezjKHPGQ89uhD8qzEkUhun4ijKucw++Dj 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICZzCCAg6gAwIBAgIRAKP+y1PVwEV0mURvqCZ4qOwwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMi5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABF2zUN+u/muSsAF/0dxOPXwNBRm9 9 | SoqW9GEz31KGgeb5cdv4rgg3ev3ANquvoYQP/IYluqvuVtMVGtA4CLkGjo2jgZcw 10 | gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD 11 | AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDe8IcIXThnSnaMPWTEJfmLc7ah2 12 | kNP5wU2upCqGSjnXMCgGA1UdEQQhMB+CFnBlZXIwLm9yZzIuZXhhbXBsZS5jb22C 13 | BXBlZXIwMAoGCCqGSM49BAMCA0cAMEQCIBsN57dsMMQXiNhVqo5punbBHMMH3rZs 14 | GkZSBUAdrVrmAiA2ZJ/3X7ck8Z1iw+xQdDnbUP1SCJFKfq6qbk5+EANXHA== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg2Pab8yP8Xx4Obv6n 3 | A2HCjo3sYLBY22VGGQLrmv+9jTWhRANCAARds1Dfrv5rkrABf9HcTj18DQUZvUqK 4 | lvRhM99ShoHm+XHb+K4IN3r9wDarr6GED/yGJbqr7lbTFRrQOAi5Bo6N 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKjCCAdGgAwIBAgIRAOudV5+eSKby6XlCNflGD1UwCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAxMTAw 6 | WjBsMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEPMA0GA1UECxMGY2xpZW50MR8wHQYDVQQDDBZBZG1pbkBv 8 | cmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElICqSUl+ 9 | uMJTRjCYmabRdazmUAGEUjAG9c18uzkZJv1EElVK8+QTu87SkJwciMUYfRcAT3Zy 10 | JazaLJJb71j0NqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYD 11 | VR0jBCQwIoAgTQVSXez5hMZQ/GjWJ4EIcSWbDPhU9zsploeUvmkhp+kwCgYIKoZI 12 | zj0EAwIDRwAwRAIgSGmdcO6gonZZLVDa7G3ApBWt5L6lh8qkkVqPtSQgj70CICUI 13 | 54+iWwAl1fd3r/TiFLUgyGoVuBEg7/qqTMOXqw10 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUTCCAfegAwIBAgIQGwW8j36XHNANMp/rsHVJDjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | Jya+Zw8wRe9Q0eUhuJnk4eAncTsOclRheIclI1lSz4lSD+eX/EJ2LVZDZ6pS2Psx 10 | rLok2/VDh+jO5K83G/vXR6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBN 12 | BVJd7PmExlD8aNYngQhxJZsM+FT3OymWh5S+aSGn6TAKBggqhkjOPQQDAgNIADBF 13 | AiEAr4et5NZppN6rwCi3xLchAZ9IAkJCV41P76i3zG528d8CIF3W+HHJk5dimCmh 14 | /1UnWCktDIfAwVfgzMzLssxAbC+b 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/config.yaml: -------------------------------------------------------------------------------- 1 | NodeOUs: 2 | Enable: true 3 | ClientOUIdentifier: 4 | Certificate: cacerts/ca.org2.example.com-cert.pem 5 | OrganizationalUnitIdentifier: client 6 | PeerOUIdentifier: 7 | Certificate: cacerts/ca.org2.example.com-cert.pem 8 | OrganizationalUnitIdentifier: peer 9 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/325d30b1dcbe1c7a580807d73a4dda360de808d74f0d80ea48531c8c45311466_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg7FKbNdw0sx4XCK3T 3 | u7yBi/EFzlzky/FZImeddYj5fvahRANCAASIYDSV3uPQx5jvHYkZ0oDHLJ+6/3Fr 4 | TlxfDrjQ5mUaHd6Er1+wbWWsu3LzzQGETJlDzJxnd4iz8P7yqXu2+kDy 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAc+gAwIBAgIRAMPgtK7q/H1Ndp6HfXTGUqswCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAxMTAw 6 | WjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjEub3Jn 8 | Mi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIhgNJXe49DH 9 | mO8diRnSgMcsn7r/cWtOXF8OuNDmZRod3oSvX7BtZay7cvPNAYRMmUPMnGd3iLPw 10 | /vKpe7b6QPKjTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud 11 | IwQkMCKAIE0FUl3s+YTGUPxo1ieBCHElmwz4VPc7KZaHlL5pIafpMAoGCCqGSM49 12 | BAMCA0gAMEUCIQDA+xmGJexQrKRmaJS4RHmdBJYb17tQuFuS0b5prnwLdQIgKsoE 13 | 4LboyFKiTewtMjSkz1O7j3qTg/y0cOBoUvC46IU= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf2gAwIBAgIQJ+XJmdvDQqcvykhx+6hn+DAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEBDUMIp8xt5C0iou8NDDIcrmI748yY6o3UK7qV2+18vOyGx06LYkIubr4 10 | 9bdFBrvXTWCIgTEy64o2Qoys1RJkfKNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1Ud 11 | JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1Ud 12 | DgQiBCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT+cFNrqQqhko51zAKBggqhkjOPQQD 13 | AgNIADBFAiEAh1FifNANYh3flUlGG4r+HmhOtLw0jXWExiFnYl9l8EUCIHBBh7zJ 14 | 3ZSezjKHPGQ89uhD8qzEkUhun4ijKucw++Dj 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf2gAwIBAgIQJ+XJmdvDQqcvykhx+6hn+DAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEBDUMIp8xt5C0iou8NDDIcrmI748yY6o3UK7qV2+18vOyGx06LYkIubr4 10 | 9bdFBrvXTWCIgTEy64o2Qoys1RJkfKNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1Ud 11 | JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1Ud 12 | DgQiBCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT+cFNrqQqhko51zAKBggqhkjOPQQD 13 | AgNIADBFAiEAh1FifNANYh3flUlGG4r+HmhOtLw0jXWExiFnYl9l8EUCIHBBh7zJ 14 | 3ZSezjKHPGQ89uhD8qzEkUhun4ijKucw++Dj 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICaDCCAg6gAwIBAgIRANC84bveCSku6h/ckba/Ug8wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjEub3JnMi5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAIhRWEi4pWhYDzcH63d41KBQlJ7 9 | 1Y91oVfRZAuZIC8KmHYUlQNmAYFkNJPilZ4Fn1av9NdXPK0NtGAJvOwcc4KjgZcw 10 | gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD 11 | AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDe8IcIXThnSnaMPWTEJfmLc7ah2 12 | kNP5wU2upCqGSjnXMCgGA1UdEQQhMB+CFnBlZXIxLm9yZzIuZXhhbXBsZS5jb22C 13 | BXBlZXIxMAoGCCqGSM49BAMCA0gAMEUCIQDha66ikHf4fhKWqkSYARcBsNDIUlHZ 14 | H7rybi1FA5Vg8AIgX9BHoU6BS77CtiLO3P7T0WwLwNA/6R2lwp0wldJySyk= 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgRSkzJLmR5cc3FhzY 3 | dSTWjByANupX3mGnl9ZajXNYNP+hRANCAAQCIUVhIuKVoWA83B+t3eNSgUJSe9WP 4 | daFX0WQLmSAvCph2FJUDZgGBZDST4pWeBZ9Wr/TXVzytDbRgCbzsHHOC 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/tlsca/37bc21c2174e19d29da30f5931097e62dceda87690d3f9c14daea42a864a39d7_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg+m7rdg3K0txqouLG 3 | Xb8BwvjDwVKNxphmwGLWO+f0k62hRANCAAQENQwinzG3kLSKi7w0MMhyuYjvjzJj 4 | qjdQrupXb7Xy87IbHTotiQi5uvj1t0UGu9dNYIiBMTLrijZCjKzVEmR8 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf2gAwIBAgIQJ+XJmdvDQqcvykhx+6hn+DAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEBDUMIp8xt5C0iou8NDDIcrmI748yY6o3UK7qV2+18vOyGx06LYkIubr4 10 | 9bdFBrvXTWCIgTEy64o2Qoys1RJkfKNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1Ud 11 | JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1Ud 12 | DgQiBCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT+cFNrqQqhko51zAKBggqhkjOPQQD 13 | AgNIADBFAiEAh1FifNANYh3flUlGG4r+HmhOtLw0jXWExiFnYl9l8EUCIHBBh7zJ 14 | 3ZSezjKHPGQ89uhD8qzEkUhun4ijKucw++Dj 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKjCCAdGgAwIBAgIRAOudV5+eSKby6XlCNflGD1UwCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAxMTAw 6 | WjBsMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEPMA0GA1UECxMGY2xpZW50MR8wHQYDVQQDDBZBZG1pbkBv 8 | cmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElICqSUl+ 9 | uMJTRjCYmabRdazmUAGEUjAG9c18uzkZJv1EElVK8+QTu87SkJwciMUYfRcAT3Zy 10 | JazaLJJb71j0NqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYD 11 | VR0jBCQwIoAgTQVSXez5hMZQ/GjWJ4EIcSWbDPhU9zsploeUvmkhp+kwCgYIKoZI 12 | zj0EAwIDRwAwRAIgSGmdcO6gonZZLVDa7G3ApBWt5L6lh8qkkVqPtSQgj70CICUI 13 | 54+iWwAl1fd3r/TiFLUgyGoVuBEg7/qqTMOXqw10 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUTCCAfegAwIBAgIQGwW8j36XHNANMp/rsHVJDjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | Jya+Zw8wRe9Q0eUhuJnk4eAncTsOclRheIclI1lSz4lSD+eX/EJ2LVZDZ6pS2Psx 10 | rLok2/VDh+jO5K83G/vXR6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBN 12 | BVJd7PmExlD8aNYngQhxJZsM+FT3OymWh5S+aSGn6TAKBggqhkjOPQQDAgNIADBF 13 | AiEAr4et5NZppN6rwCi3xLchAZ9IAkJCV41P76i3zG528d8CIF3W+HHJk5dimCmh 14 | /1UnWCktDIfAwVfgzMzLssxAbC+b 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/6b95a64d83a9a9181a58cd9524b2e198dad6bd558396cf70b2b48473200f6a45_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTksTQtWjXpGGqNpe 3 | jFCjGDrpmgci/0PCBi1f2Ihza0ahRANCAASUgKpJSX64wlNGMJiZptF1rOZQAYRS 4 | MAb1zXy7ORkm/UQSVUrz5BO7ztKQnByIxRh9FwBPdnIlrNosklvvWPQ2 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKjCCAdGgAwIBAgIRAOudV5+eSKby6XlCNflGD1UwCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAxMTAw 6 | WjBsMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEPMA0GA1UECxMGY2xpZW50MR8wHQYDVQQDDBZBZG1pbkBv 8 | cmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElICqSUl+ 9 | uMJTRjCYmabRdazmUAGEUjAG9c18uzkZJv1EElVK8+QTu87SkJwciMUYfRcAT3Zy 10 | JazaLJJb71j0NqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYD 11 | VR0jBCQwIoAgTQVSXez5hMZQ/GjWJ4EIcSWbDPhU9zsploeUvmkhp+kwCgYIKoZI 12 | zj0EAwIDRwAwRAIgSGmdcO6gonZZLVDa7G3ApBWt5L6lh8qkkVqPtSQgj70CICUI 13 | 54+iWwAl1fd3r/TiFLUgyGoVuBEg7/qqTMOXqw10 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf2gAwIBAgIQJ+XJmdvDQqcvykhx+6hn+DAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEBDUMIp8xt5C0iou8NDDIcrmI748yY6o3UK7qV2+18vOyGx06LYkIubr4 10 | 9bdFBrvXTWCIgTEy64o2Qoys1RJkfKNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1Ud 11 | JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1Ud 12 | DgQiBCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT+cFNrqQqhko51zAKBggqhkjOPQQD 13 | AgNIADBFAiEAh1FifNANYh3flUlGG4r+HmhOtLw0jXWExiFnYl9l8EUCIHBBh7zJ 14 | 3ZSezjKHPGQ89uhD8qzEkUhun4ijKucw++Dj 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf2gAwIBAgIQJ+XJmdvDQqcvykhx+6hn+DAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEBDUMIp8xt5C0iou8NDDIcrmI748yY6o3UK7qV2+18vOyGx06LYkIubr4 10 | 9bdFBrvXTWCIgTEy64o2Qoys1RJkfKNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1Ud 11 | JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1Ud 12 | DgQiBCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT+cFNrqQqhko51zAKBggqhkjOPQQD 13 | AgNIADBFAiEAh1FifNANYh3flUlGG4r+HmhOtLw0jXWExiFnYl9l8EUCIHBBh7zJ 14 | 3ZSezjKHPGQ89uhD8qzEkUhun4ijKucw++Dj 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICOzCCAeKgAwIBAgIRAMYNEYyZmbrHfDjB/LzmyBYwCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB490MQspjyZGnI87uRRAGK3Lwt8 9 | fh7bj3T9epqkEdI5NH48T2BNp40EXMWOvPkva42GXBONLKrS/BRu83PDmXWjbDBq 10 | MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw 11 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT 12 | +cFNrqQqhko51zAKBggqhkjOPQQDAgNHADBEAiB3IM3sGurs9Sc0BZilFDiGag8e 13 | YoCPyB16EP2cWZagZQIgargInFRvZNd8hMB+qLRJyPycArtUv5JSFeRGxlF9U38= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg4+yez7qDzYDgyiCE 3 | avqB2B0VstZIP5Z+Z9gll36yoH2hRANCAAQePdDELKY8mRpyPO7kUQBity8LfH4e 4 | 2490/XqapBHSOTR+PE9gTaeNBFzFjrz5L2uNhlwTjSyq0vwUbvNzw5l1 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKzCCAdGgAwIBAgIRAKFL++57sQBbNt9FaqTwKdowCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAxMTAw 6 | WjBsMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEPMA0GA1UECxMGY2xpZW50MR8wHQYDVQQDDBZVc2VyMUBv 8 | cmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtOqkHKm+ 9 | JMcQxHRscN2nuMCyyrQl2XRd7M6ueBvNDtGfedpgDjkHFYhy2U1ZghVTgG2oZTyg 10 | SS6X5r+brGk5g6NNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYD 11 | VR0jBCQwIoAgTQVSXez5hMZQ/GjWJ4EIcSWbDPhU9zsploeUvmkhp+kwCgYIKoZI 12 | zj0EAwIDSAAwRQIhALECb7OS5MdHQMj7pJeA6GmB1VnHhPZ0olnwNmqicgEFAiAu 13 | jLD42e2q38cwo5YpaBd02UpfHyxafM0WHLFzv+7Fwg== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUTCCAfegAwIBAgIQGwW8j36XHNANMp/rsHVJDjAKBggqhkjOPQQDAjBzMQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu 5 | b3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDExMDBa 6 | MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T 7 | YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMRwwGgYDVQQD 8 | ExNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE 9 | Jya+Zw8wRe9Q0eUhuJnk4eAncTsOclRheIclI1lSz4lSD+eX/EJ2LVZDZ6pS2Psx 10 | rLok2/VDh+jO5K83G/vXR6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCBN 12 | BVJd7PmExlD8aNYngQhxJZsM+FT3OymWh5S+aSGn6TAKBggqhkjOPQQDAgNIADBF 13 | AiEAr4et5NZppN6rwCi3xLchAZ9IAkJCV41P76i3zG528d8CIF3W+HHJk5dimCmh 14 | /1UnWCktDIfAwVfgzMzLssxAbC+b 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/a192c3dc0f2d57c90b7298b443cb5bad1197cb27e176379ce3d764d193d216c2_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQglVzrQb8ZYHCFFw8M 3 | MwBcXJ1OxUMYSxMCanoeSE8Ne9WhRANCAAS06qQcqb4kxxDEdGxw3ae4wLLKtCXZ 4 | dF3szq54G80O0Z952mAOOQcViHLZTVmCFVOAbahlPKBJLpfmv5usaTmD 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKzCCAdGgAwIBAgIRAKFL++57sQBbNt9FaqTwKdowCgYIKoZIzj0EAwIwczEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh 5 | Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAxMTAw 6 | WjBsMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | U2FuIEZyYW5jaXNjbzEPMA0GA1UECxMGY2xpZW50MR8wHQYDVQQDDBZVc2VyMUBv 8 | cmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtOqkHKm+ 9 | JMcQxHRscN2nuMCyyrQl2XRd7M6ueBvNDtGfedpgDjkHFYhy2U1ZghVTgG2oZTyg 10 | SS6X5r+brGk5g6NNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYD 11 | VR0jBCQwIoAgTQVSXez5hMZQ/GjWJ4EIcSWbDPhU9zsploeUvmkhp+kwCgYIKoZI 12 | zj0EAwIDSAAwRQIhALECb7OS5MdHQMj7pJeA6GmB1VnHhPZ0olnwNmqicgEFAiAu 13 | jLD42e2q38cwo5YpaBd02UpfHyxafM0WHLFzv+7Fwg== 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf2gAwIBAgIQJ+XJmdvDQqcvykhx+6hn+DAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEBDUMIp8xt5C0iou8NDDIcrmI748yY6o3UK7qV2+18vOyGx06LYkIubr4 10 | 9bdFBrvXTWCIgTEy64o2Qoys1RJkfKNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1Ud 11 | JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1Ud 12 | DgQiBCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT+cFNrqQqhko51zAKBggqhkjOPQQD 13 | AgNIADBFAiEAh1FifNANYh3flUlGG4r+HmhOtLw0jXWExiFnYl9l8EUCIHBBh7zJ 14 | 3ZSezjKHPGQ89uhD8qzEkUhun4ijKucw++Dj 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVzCCAf2gAwIBAgIQJ+XJmdvDQqcvykhx+6hn+DAKBggqhkjOPQQDAjB2MQsw 3 | CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy 4 | YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz 5 | Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xOTA0MTgxMDExMDBaFw0yOTA0MTUxMDEx 6 | MDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 7 | Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcyLmV4YW1wbGUuY29tMR8wHQYD 8 | VQQDExZ0bHNjYS5vcmcyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D 9 | AQcDQgAEBDUMIp8xt5C0iou8NDDIcrmI748yY6o3UK7qV2+18vOyGx06LYkIubr4 10 | 9bdFBrvXTWCIgTEy64o2Qoys1RJkfKNtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1Ud 11 | JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1Ud 12 | DgQiBCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT+cFNrqQqhko51zAKBggqhkjOPQQD 13 | AgNIADBFAiEAh1FifNANYh3flUlGG4r+HmhOtLw0jXWExiFnYl9l8EUCIHBBh7zJ 14 | 3ZSezjKHPGQ89uhD8qzEkUhun4ijKucw++Dj 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICOzCCAeKgAwIBAgIRANJsq9L9lNd0Prv5vxr21q4wCgYIKoZIzj0EAwIwdjEL 3 | MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG 4 | cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs 5 | c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTkwNDE4MTAxMTAwWhcNMjkwNDE1MTAx 6 | MTAwWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMi5leGFtcGxlLmNv 8 | bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHt3mo1YFbIbV91N8pALEuEz4RBh 9 | bpB8KnmQwHihkjYCUD5EH2PEn0P6VqvwCvhvGz5JyJi5PecKBMrsOxWMouajbDBq 10 | MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw 11 | DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCA3vCHCF04Z0p2jD1kxCX5i3O2odpDT 12 | +cFNrqQqhko51zAKBggqhkjOPQQDAgNHADBEAiAOnbTdk8tc+QPldXZ3SlzNT6YK 13 | AEwGnNH8zyxj/hwBIQIgEinj5B+A8N4pPPPFqwPvgwNnzp3zO06BC9vMiI/EzyY= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /src/main/resources/fabric/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQghOY8FiDVmmhJYL5P 3 | Ko+aPWlkQyQQhlVwMCremkooZRWhRANCAAR7d5qNWBWyG1fdTfKQCxLhM+EQYW6Q 4 | fCp5kMB4oZI2AlA+RB9jxJ9D+lar8Ar4bxs+SciYuT3nCgTK7DsVjKLm 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /src/main/resources/mapper/InfoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 13 | 17 | -------------------------------------------------------------------------------- /src/main/resources/mapper/UserFormMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 21 | 26 | 29 | -------------------------------------------------------------------------------- /src/main/resources/mapper/UtilMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | insert tb_email (email,status) values (#{email,jdbcType=VARCHAR},'1') 6 | 7 | 8 | update tb_email 9 | set check_code=#{checkCode,jdbcType=VARCHAR} 10 | where email = #{email,jdbcType=VARCHAR} 11 | 12 | 13 | update tb_email 14 | set status = '0' 15 | where tb_email.email = #{email,jdbcType=VARCHAR}; 16 | 17 | 22 | 27 | -------------------------------------------------------------------------------- /src/main/resources/picture/图片1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Panghu98/oil-supply-chain/6f37680a1b41d315c42f902cd7ebd9fd06e83cef/src/main/resources/picture/图片1.png -------------------------------------------------------------------------------- /src/main/resources/picture/图片3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Panghu98/oil-supply-chain/6f37680a1b41d315c42f902cd7ebd9fd06e83cef/src/main/resources/picture/图片3.png -------------------------------------------------------------------------------- /src/main/resources/redis.properties: -------------------------------------------------------------------------------- 1 | #Matser的ip地址 2 | redis.hostName=127.0.0.1 3 | redis.port=6380 4 | #如果有密码 5 | redis.password=000411 6 | #客户端超时时间单位是毫秒 默认是2000 7 | redis.timeout=10000 8 | #最大空闲数 9 | redis.maxIdle=300 10 | #连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal 11 | #redis.maxActive=600 12 | #控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性 13 | redis.maxTotal=1000 14 | #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。 15 | redis.maxWaitMillis=1000 16 | #连接的最小空闲时间 默认1800000毫秒(30分钟) 17 | redis.minEvictableIdleTimeMillis=300000 18 | #每次释放连接的最大数目,默认3 19 | redis.numTestsPerEvictionRun=1024 20 | #逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1 21 | redis.timeBetweenEvictionRunsMillis=30000 22 | #是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个 23 | redis.testOnBorrow=true 24 | #在空闲时检查有效性, 默认false 25 | redis.testWhileIdle=true -------------------------------------------------------------------------------- /src/main/resources/static/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Panghu98/oil-supply-chain/6f37680a1b41d315c42f902cd7ebd9fd06e83cef/src/main/resources/static/index.html --------------------------------------------------------------------------------