├── .github
└── workflows
│ └── container.yml
├── .gitignore
├── .license.tpl
├── .licenserc.yaml
├── .mvn
└── wrapper
│ ├── MavenWrapperDownloader.java
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── Dockerfile
├── LICENSE
├── NOTICE
├── README.md
├── README_cn.md
├── VERSION
├── docs
├── en
│ ├── API Reference.md
│ └── asserts
│ │ └── AO.space Platform&BaseService Arch.png
└── zh
│ ├── API参考.md
│ └── asserts
│ └── 傲空间平台&Platform Base架构.png
├── eulixplatform-common
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── xyz
│ │ └── eulix
│ │ └── platform
│ │ └── common
│ │ └── support
│ │ ├── ClassUtils.java
│ │ ├── CommonUtils.java
│ │ ├── ResourceUtils.java
│ │ ├── RestConfiguration.java
│ │ ├── log
│ │ ├── Logged.java
│ │ └── LoggingInterceptor.java
│ │ ├── model
│ │ ├── BaseEntity.java
│ │ ├── BatchDeleteResult.java
│ │ ├── PageInfo.java
│ │ ├── PageListResult.java
│ │ ├── SortDirEnum.java
│ │ └── StatusResult.java
│ │ ├── serialization
│ │ ├── MyObjectMapperCustomizer.java
│ │ └── OperationUtils.java
│ │ ├── service
│ │ ├── ServiceError.java
│ │ └── ServiceOperationException.java
│ │ └── validator
│ │ ├── ValueOfEnum.java
│ │ └── ValueOfEnumValidator.java
│ └── test
│ └── java
│ └── xyz
│ └── eulix
│ └── platform
│ └── common
│ └── support
│ ├── CommonUtilsTest.java
│ └── OperationUtilsTest.java
├── eulixplatform-registry
├── .dockerignore
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── xyz
│ │ │ └── eulix
│ │ │ └── platform
│ │ │ └── services
│ │ │ ├── auth
│ │ │ ├── dto
│ │ │ │ ├── GenPkeyRsp.java
│ │ │ │ ├── PollPkeyReq.java
│ │ │ │ ├── PollPkeyRsp.java
│ │ │ │ └── TransBoxInfoReq.java
│ │ │ ├── entity
│ │ │ │ └── PkeyAuthEntity.java
│ │ │ ├── repository
│ │ │ │ └── PkeyAuthEntityRepository.java
│ │ │ ├── rest
│ │ │ │ └── AuthResource.java
│ │ │ └── service
│ │ │ │ └── AuthService.java
│ │ │ ├── basic
│ │ │ ├── AppConfiguration.java
│ │ │ ├── dto
│ │ │ │ ├── PlatformApiResults.java
│ │ │ │ ├── PlatformApiTypeEnum.java
│ │ │ │ └── PlatformApis.java
│ │ │ ├── rest
│ │ │ │ └── BasicResource.java
│ │ │ └── service
│ │ │ │ └── BaseService.java
│ │ │ ├── cache
│ │ │ ├── GTRClient.java
│ │ │ ├── GTRouteAppTokens.java
│ │ │ ├── GTRouteBasic.java
│ │ │ ├── GTRouteClients.java
│ │ │ ├── NSRClient.java
│ │ │ ├── NSRRedirectStateEnum.java
│ │ │ ├── NSRoute.java
│ │ │ └── NetworkBasic.java
│ │ │ ├── config
│ │ │ └── ApplicationProperties.java
│ │ │ ├── lock
│ │ │ ├── DistributedLock.java
│ │ │ ├── DistributedLockFactory.java
│ │ │ ├── DistributedReadWriteLock.java
│ │ │ ├── DistributedReadWriteLockFactory.java
│ │ │ ├── LockType.java
│ │ │ ├── MySQLReentrantLock.java
│ │ │ ├── MySQLReentrantReadWriteLock.java
│ │ │ ├── RedisReentrantLock.java
│ │ │ ├── RedisReentrantReadWriteLock.java
│ │ │ ├── dto
│ │ │ │ └── ReentrantReadWriteLock.java
│ │ │ ├── entity
│ │ │ │ ├── ReentrantLockEntity.java
│ │ │ │ └── ReentrantReadWriteLockEntity.java
│ │ │ ├── repository
│ │ │ │ ├── ReentrantLockRepository.java
│ │ │ │ └── ReentrantReadWriteLockRepository.java
│ │ │ └── service
│ │ │ │ ├── ReentrantLockService.java
│ │ │ │ └── ReentrantReadWriteLockService.java
│ │ │ ├── migration
│ │ │ ├── dto
│ │ │ │ ├── BoxMigrationInfo.java
│ │ │ │ ├── BoxMigrationResult.java
│ │ │ │ ├── ClientMigrationInfo.java
│ │ │ │ ├── MigrationRouteInfo.java
│ │ │ │ ├── MigrationRouteResult.java
│ │ │ │ ├── NetworkInfo.java
│ │ │ │ ├── UserDomainRouteInfo.java
│ │ │ │ └── UserMigrationInfo.java
│ │ │ ├── rest
│ │ │ │ └── MigrationResource.java
│ │ │ └── service
│ │ │ │ └── MigrationService.java
│ │ │ ├── network
│ │ │ ├── dto
│ │ │ │ ├── BaseResultRes.java
│ │ │ │ ├── NetworkAuthReq.java
│ │ │ │ ├── NetworkServerExtraInfo.java
│ │ │ │ ├── NetworkServerRes.java
│ │ │ │ ├── NetworkServerStateEnum.java
│ │ │ │ └── StunServerRes.java
│ │ │ ├── entity
│ │ │ │ ├── NetworkRouteEntity.java
│ │ │ │ └── NetworkServerEntity.java
│ │ │ ├── repository
│ │ │ │ ├── NetworkRouteEntityRepository.java
│ │ │ │ └── NetworkServerEntityRepository.java
│ │ │ ├── rest
│ │ │ │ └── NetworkResource.java
│ │ │ └── service
│ │ │ │ └── NetworkService.java
│ │ │ ├── provider
│ │ │ ├── ProviderFactory.java
│ │ │ ├── impl
│ │ │ │ └── DefaultRegistryProvider.java
│ │ │ └── inf
│ │ │ │ └── RegistryProvider.java
│ │ │ ├── registry
│ │ │ ├── dto
│ │ │ │ ├── package-info.java
│ │ │ │ └── registry
│ │ │ │ │ ├── BaseResultRes.java
│ │ │ │ │ ├── BoxRegistryDetailInfo.java
│ │ │ │ │ ├── BoxRegistryInfo.java
│ │ │ │ │ ├── BoxRegistryResult.java
│ │ │ │ │ ├── ClientRegistryDetailInfo.java
│ │ │ │ │ ├── ClientRegistryInfo.java
│ │ │ │ │ ├── ClientRegistryResult.java
│ │ │ │ │ ├── NetworkClient.java
│ │ │ │ │ ├── RegistryTypeEnum.java
│ │ │ │ │ ├── SubdomainGenInfo.java
│ │ │ │ │ ├── SubdomainGenResult.java
│ │ │ │ │ ├── SubdomainStateEnum.java
│ │ │ │ │ ├── SubdomainUpdateInfo.java
│ │ │ │ │ ├── SubdomainUpdateResult.java
│ │ │ │ │ ├── UserRegistryDetailInfo.java
│ │ │ │ │ ├── UserRegistryInfo.java
│ │ │ │ │ └── UserRegistryResult.java
│ │ │ ├── entity
│ │ │ │ ├── RegistryBoxEntity.java
│ │ │ │ ├── RegistryClientEntity.java
│ │ │ │ ├── RegistryUserEntity.java
│ │ │ │ └── SubdomainEntity.java
│ │ │ ├── repository
│ │ │ │ ├── RegistryBoxEntityRepository.java
│ │ │ │ ├── RegistryClientEntityRepository.java
│ │ │ │ ├── RegistryUserEntityRepository.java
│ │ │ │ └── SubdomainEntityRepository.java
│ │ │ ├── rest
│ │ │ │ └── RegistryResource.java
│ │ │ └── service
│ │ │ │ ├── RegistryService.java
│ │ │ │ └── SubdomainService.java
│ │ │ └── token
│ │ │ ├── dto
│ │ │ ├── AuthTypeEnum.java
│ │ │ ├── CheckTokenInfo.java
│ │ │ ├── CheckTokenResult.java
│ │ │ ├── ServiceEnum.java
│ │ │ ├── TokenInfo.java
│ │ │ ├── TokenResult.java
│ │ │ ├── TokenResults.java
│ │ │ └── TokenVerifySignInfo.java
│ │ │ ├── entity
│ │ │ └── BoxTokenEntity.java
│ │ │ ├── repository
│ │ │ └── BoxTokenEntityRepository.java
│ │ │ ├── rest
│ │ │ └── TokenResource.java
│ │ │ └── service
│ │ │ └── TokenService.java
│ └── resources
│ │ └── profiles
│ │ └── community
│ │ ├── api
│ │ └── servicesapi.json
│ │ ├── application.yml
│ │ ├── db
│ │ └── migration
│ │ │ ├── V1.0.0__Initial_Setup.sql
│ │ │ ├── V1.1.0__Add_LockTable.sql
│ │ │ └── V2.0.0__BoxRegistry_Update.sql
│ │ └── template
│ │ ├── boxTemplate.xlsx
│ │ └── boxTemplateV2.xlsx
│ └── test
│ └── java
│ └── xyz
│ └── eulix
│ └── platform
│ └── services
│ ├── StatusResourceTest.java
│ ├── auth
│ ├── AuthServiceTest.java
│ └── PollPkeyInvalidRsp.java
│ ├── lock
│ ├── DistributedLockTest.java
│ ├── MySQLReentrantLockTest.java
│ ├── MySQLReentrantReadWriteLockTest.java
│ └── RedisReentrantReadWriteLockTest.java
│ └── registry
│ └── rest
│ ├── RegistryResourceTest.java
│ └── TokenResourceTest.java
├── licenses
├── license-antlr-antlr.txt
├── license-cglib-cglib.txt
├── license-com.alibaba-easyexcel.txt
├── license-com.cronutils-cron-utils.txt
├── license-com.fasterxml-classmate.txt
├── license-com.fasterxml.jackson.core-jackson-annotations.txt
├── license-com.fasterxml.jackson.core-jackson-core.txt
├── license-com.fasterxml.jackson.core-jackson-databind.txt
├── license-com.fasterxml.jackson.dataformat-jackson-dataformat-yaml.txt
├── license-com.fasterxml.jackson.datatype-jackson-datatype-jdk8.txt
├── license-com.fasterxml.jackson.datatype-jackson-datatype-jsr310.txt
├── license-com.fasterxml.jackson.jaxrs-jackson-jaxrs-base.txt
├── license-com.fasterxml.jackson.jaxrs-jackson-jaxrs-json-provider.txt
├── license-com.fasterxml.jackson.module-jackson-module-jaxb-annotations.txt
├── license-com.fasterxml.jackson.module-jackson-module-parameter-names.txt
├── license-com.github.ben-manes.caffeine-caffeine.txt
├── license-com.github.java-json-tools-btf.txt
├── license-com.github.java-json-tools-jackson-coreutils.txt
├── license-com.github.java-json-tools-json-patch.txt
├── license-com.github.java-json-tools-msg-simple.txt
├── license-com.github.virtuald-curvesapi.txt
├── license-com.google.code.findbugs-jsr305.txt
├── license-com.google.errorprone-error-prone-annotations.txt
├── license-com.google.guava-failureaccess.txt
├── license-com.google.guava-guava.txt
├── license-com.google.guava-listenablefuture.txt
├── license-com.google.j2objc-j2objc-annotations.txt
├── license-com.h2database-h2.txt
├── license-com.ibm.async-asyncutil.txt
├── license-com.squareup.okhttp3-okhttp.txt
├── license-com.squareup.okio-okio.txt
├── license-com.sun.activation-jakarta.activation.txt
├── license-com.sun.istack-istack-commons-runtime.txt
├── license-com.sun.mail-jakarta.mail.txt
├── license-com.zaxxer-SparseBitSet.txt
├── license-commons-codec-commons-codec.txt
├── license-commons-io-commons-io.txt
├── license-io.agroal-agroal-api.txt
├── license-io.agroal-agroal-narayana.txt
├── license-io.agroal-agroal-pool.txt
├── license-io.netty-netty-buffer.txt
├── license-io.netty-netty-codec-dns.txt
├── license-io.netty-netty-codec-haproxy.txt
├── license-io.netty-netty-codec-http.txt
├── license-io.netty-netty-codec-http2.txt
├── license-io.netty-netty-codec-socks.txt
├── license-io.netty-netty-codec.txt
├── license-io.netty-netty-common.txt
├── license-io.netty-netty-handler-proxy.txt
├── license-io.netty-netty-handler.txt
├── license-io.netty-netty-resolver-dns.txt
├── license-io.netty-netty-resolver.txt
├── license-io.netty-netty-transport.txt
├── license-io.quarkus-quarkus-agroal.txt
├── license-io.quarkus-quarkus-apache-httpclient.txt
├── license-io.quarkus-quarkus-arc.txt
├── license-io.quarkus-quarkus-bootstrap-runner.txt
├── license-io.quarkus-quarkus-caffeine.txt
├── license-io.quarkus-quarkus-config-yaml.txt
├── license-io.quarkus-quarkus-core.txt
├── license-io.quarkus-quarkus-credentials.txt
├── license-io.quarkus-quarkus-datasource-common.txt
├── license-io.quarkus-quarkus-datasource.txt
├── license-io.quarkus-quarkus-development-mode-spi.txt
├── license-io.quarkus-quarkus-flyway.txt
├── license-io.quarkus-quarkus-hibernate-orm-panache-common.txt
├── license-io.quarkus-quarkus-hibernate-orm-panache.txt
├── license-io.quarkus-quarkus-hibernate-orm.txt
├── license-io.quarkus-quarkus-hibernate-validator.txt
├── license-io.quarkus-quarkus-ide-launcher.txt
├── license-io.quarkus-quarkus-jackson.txt
├── license-io.quarkus-quarkus-jaxb.txt
├── license-io.quarkus-quarkus-jaxp.txt
├── license-io.quarkus-quarkus-jdbc-h2.txt
├── license-io.quarkus-quarkus-jdbc-mysql.txt
├── license-io.quarkus-quarkus-mutiny.txt
├── license-io.quarkus-quarkus-narayana-jta.txt
├── license-io.quarkus-quarkus-netty.txt
├── license-io.quarkus-quarkus-panache-common.txt
├── license-io.quarkus-quarkus-panache-hibernate-common.txt
├── license-io.quarkus-quarkus-redis-client.txt
├── license-io.quarkus-quarkus-rest-client-config.txt
├── license-io.quarkus-quarkus-rest-client-jackson.txt
├── license-io.quarkus-quarkus-rest-client.txt
├── license-io.quarkus-quarkus-resteasy-common.txt
├── license-io.quarkus-quarkus-resteasy-jackson.txt
├── license-io.quarkus-quarkus-resteasy-jaxb.txt
├── license-io.quarkus-quarkus-resteasy-server-common.txt
├── license-io.quarkus-quarkus-resteasy.txt
├── license-io.quarkus-quarkus-scheduler.txt
├── license-io.quarkus-quarkus-security-runtime-spi.txt
├── license-io.quarkus-quarkus-smallrye-context-propagation.txt
├── license-io.quarkus-quarkus-smallrye-openapi.txt
├── license-io.quarkus-quarkus-swagger-ui.txt
├── license-io.quarkus-quarkus-vertx-http-dev-console-runtime-spi.txt
├── license-io.quarkus-quarkus-vertx-http.txt
├── license-io.quarkus-quarkus-vertx.txt
├── license-io.quarkus.arc-arc.txt
├── license-io.quarkus.security-quarkus-security.txt
├── license-io.smallrye-smallrye-context-propagation-api.txt
├── license-io.smallrye-smallrye-context-propagation-jta.txt
├── license-io.smallrye-smallrye-context-propagation-storage.txt
├── license-io.smallrye-smallrye-context-propagation.txt
├── license-io.smallrye-smallrye-fault-tolerance-vertx.txt
├── license-io.smallrye-smallrye-open-api-core.txt
├── license-io.smallrye.common-smallrye-common-annotation.txt
├── license-io.smallrye.common-smallrye-common-classloader.txt
├── license-io.smallrye.common-smallrye-common-constraint.txt
├── license-io.smallrye.common-smallrye-common-expression.txt
├── license-io.smallrye.common-smallrye-common-function.txt
├── license-io.smallrye.common-smallrye-common-io.txt
├── license-io.smallrye.config-smallrye-config-common.txt
├── license-io.smallrye.config-smallrye-config-core.txt
├── license-io.smallrye.config-smallrye-config-source-yaml.txt
├── license-io.smallrye.config-smallrye-config-validator.txt
├── license-io.smallrye.config-smallrye-config.txt
├── license-io.smallrye.reactive-mutiny-smallrye-context-propagation.txt
├── license-io.smallrye.reactive-mutiny.txt
├── license-io.smallrye.reactive-smallrye-mutiny-vertx-auth-common.txt
├── license-io.smallrye.reactive-smallrye-mutiny-vertx-bridge-common.txt
├── license-io.smallrye.reactive-smallrye-mutiny-vertx-core.txt
├── license-io.smallrye.reactive-smallrye-mutiny-vertx-redis-client.txt
├── license-io.smallrye.reactive-smallrye-mutiny-vertx-runtime.txt
├── license-io.smallrye.reactive-smallrye-mutiny-vertx-web-common.txt
├── license-io.smallrye.reactive-smallrye-mutiny-vertx-web.txt
├── license-io.smallrye.reactive-smallrye-reactive-converter-api.txt
├── license-io.smallrye.reactive-smallrye-reactive-converter-mutiny.txt
├── license-io.smallrye.reactive-vertx-mutiny-generator.txt
├── license-io.vertx-vertx-auth-common.txt
├── license-io.vertx-vertx-bridge-common.txt
├── license-io.vertx-vertx-codegen.txt
├── license-io.vertx-vertx-core.txt
├── license-io.vertx-vertx-redis-client.txt
├── license-io.vertx-vertx-web-common.txt
├── license-io.vertx-vertx-web.txt
├── license-jakarta.activation-jakarta.activation-api.txt
├── license-jakarta.annotation-jakarta.annotation-api.txt
├── license-jakarta.el-jakarta.el-api.txt
├── license-jakarta.enterprise-jakarta.enterprise.cdi-api.txt
├── license-jakarta.inject-jakarta.inject-api.txt
├── license-jakarta.interceptor-jakarta.interceptor-api.txt
├── license-jakarta.persistence-jakarta.persistence-api.txt
├── license-jakarta.transaction-jakarta.transaction-api.txt
├── license-jakarta.validation-jakarta.validation-api.txt
├── license-mysql-mysql-connector-java.txt
├── license-net.bytebuddy-byte-buddy.txt
├── license-org.apache.commons-commons-collections4.txt
├── license-org.apache.commons-commons-compress.txt
├── license-org.apache.commons-commons-csv.txt
├── license-org.apache.commons-commons-math3.txt
├── license-org.apache.httpcomponents-httpasyncclient.txt
├── license-org.apache.httpcomponents-httpclient.txt
├── license-org.apache.httpcomponents-httpcore-nio.txt
├── license-org.apache.httpcomponents-httpcore.txt
├── license-org.apache.james-apache-mime4j-core.txt
├── license-org.apache.james-apache-mime4j-dom.txt
├── license-org.apache.james-apache-mime4j-storage.txt
├── license-org.apache.poi-poi-ooxml-schemas.txt
├── license-org.apache.poi-poi-ooxml.txt
├── license-org.apache.poi-poi.txt
├── license-org.apache.xmlbeans-xmlbeans.txt
├── license-org.checkerframework-checker-qual.txt
├── license-org.eclipse.microprofile.config-microprofile-config-api.txt
├── license-org.eclipse.microprofile.context-propagation-microprofile-context-propagation-api.txt
├── license-org.eclipse.microprofile.openapi-microprofile-openapi-api.txt
├── license-org.eclipse.microprofile.rest.client-microprofile-rest-client-api.txt
├── license-org.ehcache-ehcache.txt
├── license-org.flywaydb-flyway-core.txt
├── license-org.glassfish-jakarta.el.txt
├── license-org.glassfish.jaxb-jaxb-runtime.txt
├── license-org.glassfish.jaxb-txw2.txt
├── license-org.graalvm.sdk-graal-sdk.txt
├── license-org.hibernate-hibernate-core.txt
├── license-org.hibernate-hibernate-graalvm.txt
├── license-org.hibernate-quarkus-local-cache.txt
├── license-org.hibernate.common-hibernate-commons-annotations.txt
├── license-org.hibernate.validator-hibernate-validator.txt
├── license-org.jboss-jandex.txt
├── license-org.jboss-jboss-transaction-spi.txt
├── license-org.jboss.logging-commons-logging-jboss-logging.txt
├── license-org.jboss.logging-jboss-logging-annotations.txt
├── license-org.jboss.logging-jboss-logging.txt
├── license-org.jboss.logmanager-jboss-logmanager-embedded.txt
├── license-org.jboss.narayana.jta-narayana-jta.txt
├── license-org.jboss.narayana.jts-narayana-jts-integration.txt
├── license-org.jboss.resteasy-resteasy-cdi.txt
├── license-org.jboss.resteasy-resteasy-client-api.txt
├── license-org.jboss.resteasy-resteasy-client-microprofile-base.txt
├── license-org.jboss.resteasy-resteasy-client-microprofile.txt
├── license-org.jboss.resteasy-resteasy-client.txt
├── license-org.jboss.resteasy-resteasy-core-spi.txt
├── license-org.jboss.resteasy-resteasy-core.txt
├── license-org.jboss.resteasy-resteasy-jackson2-provider.txt
├── license-org.jboss.resteasy-resteasy-jaxb-provider.txt
├── license-org.jboss.resteasy-resteasy-multipart-provider.txt
├── license-org.jboss.slf4j-slf4j-jboss-logmanager.txt
├── license-org.jboss.spec.javax.resource-jboss-connector-api-1.7-spec.txt
├── license-org.jboss.spec.javax.ws.rs-jboss-jaxrs-api-2.1-spec.txt
├── license-org.jboss.spec.javax.xml.bind-jboss-jaxb-api-2.3-spec.txt
├── license-org.jboss.threads-jboss-threads.txt
├── license-org.locationtech.jts-jts-core.txt
├── license-org.ow2.asm-asm.txt
├── license-org.reactivestreams-reactive-streams.txt
├── license-org.slf4j-slf4j-api.txt
├── license-org.wildfly.common-wildfly-common.txt
├── license-org.yaml-snakeyaml.txt
└── license-xyz.eulix.platform.services-eulixplatform-common.txt
├── mvnw
├── mvnw.cmd
└── pom.xml
/.gitignore:
--------------------------------------------------------------------------------
1 | eulixplatform-registry/target/*
2 | eulixplatform-common/target/*
3 |
--------------------------------------------------------------------------------
/.licenserc.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | header:
16 | license:
17 | spdx-id: Apache-2.0
18 | copyright-owner: ISCAS
19 | software-name: platform-services
20 | content: |
21 | Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
22 |
23 | Licensed under the Apache License, Version 2.0 (the "License");
24 | you may not use this file except in compliance with the License.
25 | You may obtain a copy of the License at
26 |
27 | http://www.apache.org/licenses/LICENSE-2.0
28 |
29 | Unless required by applicable law or agreed to in writing, software
30 | distributed under the License is distributed on an "AS IS" BASIS,
31 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
32 | See the License for the specific language governing permissions and
33 | limitations under the License.
34 |
35 | paths:
36 | - '**'
37 |
38 | paths-ignore:
39 | - 'licenses'
40 | - '**/*.md'
41 | - '**/*.json'
42 | - 'LICENSE'
43 | - 'NOTICE'
44 | - 'VERSION'
45 | - '.license.tpl'
46 | - 'mvnw'
47 | - '**/*.marker'
48 | - '**/*.lst'
49 |
50 | language:
51 | Dockerfile:
52 | filenames:
53 | - Dockerfile.jvm
54 | - Dockerfile.legacy-jar
55 | - Dockerfile.native
56 | - Dockerfile.native-distroless
57 | comment_style_id: Hashtag
58 |
59 | dependency:
60 | files:
61 | - pom.xml
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip
16 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
17 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | FROM maven:3.8.6-openjdk-11 as builder
16 |
17 | COPY . .
18 | RUN mvn -pl eulixplatform-common,eulixplatform-registry clean package -Pcommunity
19 |
20 | FROM redhat/ubi8-minimal
21 |
22 | ARG JAVA_PACKAGE=java-11-openjdk-headless
23 | ARG RUN_JAVA_VERSION=1.3.8
24 | ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'
25 | # Install java and the run-java script
26 | # Also set up permissions for user `1001`
27 | RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \
28 | && microdnf clean all \
29 | && mkdir /deployments \
30 | && chown 1001 /deployments \
31 | && chmod "g+rwX" /deployments \
32 | && chown 1001:root /deployments \
33 | && curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \
34 | && chown 1001 /deployments/run-java.sh \
35 | && chmod 540 /deployments/run-java.sh \
36 | && echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/conf/security/java.security \
37 | && microdnf install fontconfig
38 |
39 | # Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size.
40 | ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Duser.timezone=GMT+08"
41 | # We make four distinct layers so if there are application changes the library layers can be re-used
42 | COPY --from=builder --chown=1001 eulixplatform-registry/target/quarkus-app/lib/ /deployments/lib/
43 | COPY --from=builder --chown=1001 eulixplatform-registry/target/quarkus-app/*.jar /deployments/
44 | COPY --from=builder --chown=1001 eulixplatform-registry/target/quarkus-app/app/ /deployments/app/
45 | COPY --from=builder --chown=1001 eulixplatform-registry/target/quarkus-app/quarkus/ /deployments/quarkus/
46 |
47 | EXPOSE 8080
48 | USER 1001
49 |
50 | ENTRYPOINT [ "/deployments/run-java.sh" ]
51 |
--------------------------------------------------------------------------------
/NOTICE:
--------------------------------------------------------------------------------
1 | --Platform-Registry--
2 | Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS)
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 |
16 | --Third Party Software Notices--
17 | Platform-Registry use software provided by third parties, including open source software. The following copyright statements and licenses apply to various components that are distributed with Platform-Registry. The Platform-Registry that includes this file does not necessarily use all of the third party software components referred to below.
18 |
19 | Licensee must fully agree and comply with these license terms or must not use these components. The third party license terms apply only to the respective software to which the license pertains, and the third party license terms do not apply to the Platform-Registry.
20 |
--------------------------------------------------------------------------------
/VERSION:
--------------------------------------------------------------------------------
1 | 2.0.0
2 |
--------------------------------------------------------------------------------
/docs/en/asserts/AO.space Platform&BaseService Arch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/docs/en/asserts/AO.space Platform&BaseService Arch.png
--------------------------------------------------------------------------------
/docs/zh/asserts/傲空间平台&Platform Base架构.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/docs/zh/asserts/傲空间平台&Platform Base架构.png
--------------------------------------------------------------------------------
/eulixplatform-common/src/main/java/xyz/eulix/platform/common/support/log/Logged.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.common.support.log;
18 |
19 | import javax.interceptor.InterceptorBinding;
20 | import java.lang.annotation.Documented;
21 | import java.lang.annotation.Retention;
22 | import java.lang.annotation.Target;
23 |
24 | import static java.lang.annotation.ElementType.METHOD;
25 | import static java.lang.annotation.ElementType.TYPE;
26 | import static java.lang.annotation.RetentionPolicy.RUNTIME;
27 |
28 | /**
29 | * Used to mark a class or method to be intercept with logging function.
30 | *
31 | * @see LoggingInterceptor
32 | * @since 1.0.0
33 | * @author Haibo Luo
34 | */
35 | @Target({ TYPE, METHOD })
36 | @Retention(RUNTIME)
37 | @Documented
38 | @InterceptorBinding
39 | public @interface Logged {
40 | }
41 |
--------------------------------------------------------------------------------
/eulixplatform-common/src/main/java/xyz/eulix/platform/common/support/model/BaseEntity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.common.support.model;
18 |
19 | import com.alibaba.excel.annotation.ExcelProperty;
20 | import lombok.Getter;
21 | import lombok.Setter;
22 | import lombok.ToString;
23 | import org.hibernate.annotations.CreationTimestamp;
24 | import org.hibernate.annotations.UpdateTimestamp;
25 |
26 | import javax.persistence.*;
27 | import java.io.Serializable;
28 | import java.time.OffsetDateTime;
29 |
30 | /**
31 | * Used to define a base entity from which you can derive your own entity.
32 | * It provides many basic properties as a domain entity.
33 | *
34 | * These properties are:
35 | *
36 | * id: used to define the primary key of database.
37 | * created_at: used to define the create time of entity.
38 | * it will be added at first creation.
39 | * updated_at: used to define the update time of entity,
40 | * it will be updated for every update.
41 | * version: used to define current version of entity,
42 | * it will used to avoid conflict in an optimistic way.
43 | *
44 | *
45 | * By default, these properties can be maintained properly in an ORM framework.
46 | */
47 | @Getter
48 | @Setter
49 | @ToString
50 | @MappedSuperclass
51 | public abstract class BaseEntity implements Serializable {
52 | @Id
53 | @Column(name = "id")
54 | @GeneratedValue(strategy = GenerationType.IDENTITY)
55 | @ExcelProperty(index = 0)
56 | private Long id;
57 |
58 | @Column(name = "created_at")
59 | @CreationTimestamp
60 | private OffsetDateTime createdAt;
61 |
62 | @Column(name = "updated_at")
63 | @UpdateTimestamp
64 | private OffsetDateTime updatedAt;
65 |
66 | @Column(name = "version")
67 | @Version
68 | private Integer version;
69 | }
70 |
--------------------------------------------------------------------------------
/eulixplatform-common/src/main/java/xyz/eulix/platform/common/support/model/BatchDeleteResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.common.support.model;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | @Data(staticConstructor = "of")
23 | public class BatchDeleteResult {
24 | @Schema(description = "删除的条目数量")
25 | private Long deletedCount;
26 | }
27 |
--------------------------------------------------------------------------------
/eulixplatform-common/src/main/java/xyz/eulix/platform/common/support/model/PageInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.common.support.model;
18 |
19 | import lombok.Data;
20 |
21 | /**
22 | * Used to define a group of properties to wrap the page info within a REST query request.
23 | */
24 | @Data(staticConstructor = "of")
25 | public class PageInfo {
26 | private final long total;
27 | private final int page;
28 | private final int pageSize;
29 | }
30 |
--------------------------------------------------------------------------------
/eulixplatform-common/src/main/java/xyz/eulix/platform/common/support/model/PageListResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.common.support.model;
18 |
19 | import lombok.Data;
20 |
21 | import java.util.List;
22 |
23 | /**
24 | * Used to define a group of properties to wrap the paged list result within a REST response.
25 | * @param the element type of list
26 | */
27 | @Data(staticConstructor = "of")
28 | public class PageListResult {
29 | private final List list;
30 | private final PageInfo pageInfo;
31 | }
32 |
--------------------------------------------------------------------------------
/eulixplatform-common/src/main/java/xyz/eulix/platform/common/support/model/SortDirEnum.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.common.support.model;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Getter;
21 | import lombok.Setter;
22 |
23 | import java.util.Arrays;
24 |
25 | @AllArgsConstructor
26 | public enum SortDirEnum {
27 | ASC("asc", "正序"),
28 | DESC("desc", "倒序"),
29 | ;
30 |
31 | @Setter @Getter
32 | private String name;
33 |
34 | @Setter @Getter
35 | private String desc;
36 |
37 | public static SortDirEnum fromValue(String value) {
38 | return Arrays.stream(values()).filter(appType -> {
39 | if (appType.getName().equals(value)) {
40 | return true;
41 | }
42 | return false;
43 | }).findFirst().orElseThrow();
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/eulixplatform-common/src/main/java/xyz/eulix/platform/common/support/model/StatusResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.common.support.model;
18 |
19 | import lombok.Data;
20 |
21 | /**
22 | * Used to define a REST response for querying the server {@code status}.
23 | */
24 | @Data(staticConstructor = "of")
25 | public class StatusResult {
26 | private final String status;
27 | private final String version;
28 | }
29 |
--------------------------------------------------------------------------------
/eulixplatform-common/src/main/java/xyz/eulix/platform/common/support/serialization/MyObjectMapperCustomizer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.common.support.serialization;
18 |
19 | import com.fasterxml.jackson.annotation.JsonInclude;
20 | import com.fasterxml.jackson.databind.ObjectMapper;
21 | import io.quarkus.jackson.ObjectMapperCustomizer;
22 |
23 | import javax.inject.Singleton;
24 |
25 | @Singleton
26 | public class MyObjectMapperCustomizer implements ObjectMapperCustomizer {
27 |
28 | @Override
29 | public void customize(ObjectMapper objectMapper) {
30 | // To suppress serializing properties with null values
31 | objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/eulixplatform-common/src/main/java/xyz/eulix/platform/common/support/validator/ValueOfEnum.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.common.support.validator;
18 |
19 | import javax.validation.Constraint;
20 | import javax.validation.Payload;
21 | import java.lang.annotation.Documented;
22 | import java.lang.annotation.Retention;
23 | import java.lang.annotation.Target;
24 |
25 | import static java.lang.annotation.ElementType.*;
26 | import static java.lang.annotation.RetentionPolicy.RUNTIME;
27 |
28 | /**
29 | * The annotated element must be any of specified enum class values.
30 | *
31 | * You need to provide a {@link ValueOfEnum#valueMethod()} to help get the values of
32 | * enum class which is also specified by {@link ValueOfEnum#enumClass()}.
33 | * By default, it will use {@link Enum#name()} as the value method. For the default
34 | * validation implementation, please refer to {@link ValueOfEnumValidator}.
35 | *
36 | * Supported types are:
37 | *
38 | * - all types from {@code java.lang.Enum>}
39 | *
40 | *
41 | * {@code null} elements are considered valid.
42 | *
43 | * @author Haibo Luo
44 | * @since 1.0
45 | */
46 | @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE})
47 | @Retention(RUNTIME)
48 | @Documented
49 | @Constraint(validatedBy = ValueOfEnumValidator.class)
50 | public @interface ValueOfEnum {
51 | /**
52 | * Used to specify enum class which must be derived from {@code java.lang.Enum>}.
53 | */
54 | Class extends Enum>> enumClass();
55 | String message() default "must be any of enum {enumClass} values";
56 | Class>[] groups() default {};
57 | Class extends Payload>[] payload() default {};
58 |
59 | /**
60 | * Used to specify the value fetching method. By default, it
61 | * uses {@link Enum#name()}.
62 | */
63 | String valueMethod() default "name";
64 | }
--------------------------------------------------------------------------------
/eulixplatform-common/src/test/java/xyz/eulix/platform/common/support/CommonUtilsTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.common.support;
18 |
19 | import org.junit.jupiter.api.Test;
20 |
21 | import static org.junit.jupiter.api.Assertions.assertEquals;
22 |
23 | class CommonUtilsTest {
24 |
25 | @Test
26 | void createUnifiedRandomCharacters() {
27 | final String characters = CommonUtils.createUnifiedRandomCharacters(12);
28 | assertEquals(12, characters.length());
29 | }
30 | }
--------------------------------------------------------------------------------
/eulixplatform-registry/.dockerignore:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | *
16 | !target/*-runner
17 | !target/*-runner.jar
18 | !target/lib/*
19 | !target/quarkus-app/*
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/auth/dto/GenPkeyRsp.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.auth.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import java.time.OffsetDateTime;
23 |
24 | @Data(staticConstructor = "of")
25 | public class GenPkeyRsp {
26 | // 二维码pkey值
27 | @Schema(description = "二维码pkey值")
28 | private final String pkey;
29 |
30 | // 过期时间
31 | @Schema(description = "pkey有效时间")
32 | private final OffsetDateTime expiresAt;
33 | }
34 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/auth/dto/PollPkeyReq.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.auth.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import javax.validation.constraints.NotBlank;
23 | import javax.validation.constraints.Pattern;
24 |
25 | @Data(staticConstructor = "of")
26 | public class PollPkeyReq {
27 | // 二维码pkey值
28 | @NotBlank
29 | @Pattern(regexp = "[a-zA-Z0-9-]{36}")
30 | @Schema(pattern = "[a-zA-Z0-9-]{36}", description = "二维码pkey值")
31 | private String pkey;
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/auth/dto/PollPkeyRsp.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.auth.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | @Data(staticConstructor = "of")
23 | public class PollPkeyRsp {
24 | // 二维码pkey值
25 | @Schema(description = "二维码pkey值")
26 | private final String pkey;
27 |
28 | // 登录box端的key
29 | @Schema(description = "盒子侧bkey值")
30 | private final String bkey;
31 |
32 | // 用户域名
33 | @Schema(description = "用户域名")
34 | private final String userDomain;
35 |
36 | // 盒子公钥
37 | @Schema(description = "盒子公钥")
38 | private final String boxPubKey;
39 | }
40 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/auth/dto/TransBoxInfoReq.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.auth.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import javax.validation.constraints.NotBlank;
23 | import javax.validation.constraints.Size;
24 |
25 | @Data
26 | public class TransBoxInfoReq {
27 | // 登录box端的key
28 | @NotBlank
29 | @Size(max = 128)
30 | @Schema(maxLength = 128 ,description = "盒子侧bkey值")
31 | private String bkey;
32 |
33 | @NotBlank
34 | @Size(max = 128)
35 | @Schema(maxLength = 128 ,description = "用户域名")
36 | private String userDomain;
37 |
38 | // 盒子公钥
39 | @NotBlank
40 | @Size(max = 1024)
41 | @Schema(maxLength = 1024 ,description = "盒子公钥")
42 | private String boxPubKey;
43 | }
44 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/auth/entity/PkeyAuthEntity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.auth.entity;
18 |
19 | import lombok.Getter;
20 | import lombok.Setter;
21 | import lombok.ToString;
22 | import xyz.eulix.platform.common.support.model.BaseEntity;
23 |
24 | import javax.persistence.Column;
25 | import javax.persistence.Entity;
26 | import javax.persistence.Table;
27 | import javax.validation.constraints.NotBlank;
28 | import javax.validation.constraints.NotNull;
29 | import java.time.OffsetDateTime;
30 |
31 | @Getter @Setter @ToString(callSuper = true)
32 | @Entity @Table(name = "pkey_auth")
33 | public class PkeyAuthEntity extends BaseEntity {
34 | // 二维码pkey值
35 | @NotBlank
36 | @Column(name = "pkey")
37 | private String pkey;
38 |
39 | // pkey超时时间
40 | @NotNull
41 | @Column(name = "expires_at")
42 | private OffsetDateTime expiresAt;
43 |
44 | // 登录box端的key
45 | @Column(name = "bkey")
46 | private String bkey;
47 |
48 | // 盒子域名
49 | @Column(name = "user_domain")
50 | private String userDomain;
51 |
52 | // 盒子公钥
53 | @Column(name = "box_pub_key")
54 | private String boxPubKey;
55 | }
56 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/auth/repository/PkeyAuthEntityRepository.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.auth.repository;
18 |
19 | import io.quarkus.hibernate.orm.panache.PanacheRepository;
20 | import xyz.eulix.platform.services.auth.entity.PkeyAuthEntity;
21 |
22 | import javax.enterprise.context.ApplicationScoped;
23 |
24 | @ApplicationScoped
25 | public class PkeyAuthEntityRepository implements PanacheRepository {
26 |
27 | public PkeyAuthEntity findByPkey(String pkey) {
28 | return this.find("pkey", pkey).firstResult();
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/basic/dto/PlatformApiResults.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.basic.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import java.util.List;
23 |
24 | /**
25 | * 空间平台APIs
26 | */
27 | @Data(staticConstructor = "of")
28 | public class PlatformApiResults {
29 | @Schema(description = "空间平台API列表")
30 | private final List platformApis;
31 | }
32 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/basic/dto/PlatformApiTypeEnum.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.basic.dto;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Getter;
21 |
22 | import java.util.Arrays;
23 |
24 | @AllArgsConstructor
25 | public enum PlatformApiTypeEnum {
26 | BASIC_API("basic_api", "空间平台基础api"),
27 | EXTENSION_API("extension_api", "空间平台扩展api"),
28 | PRODUCT_SERVICE_API("product_service_api", "产品服务api"),
29 | ;
30 |
31 | @Getter
32 | private final String name;
33 |
34 | @Getter
35 | private final String desc;
36 |
37 | public static PlatformApiTypeEnum fromValue(String value) {
38 | return Arrays.stream(values()).filter(apiType -> apiType.getName().equals(value)).findFirst().orElseThrow();
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/basic/dto/PlatformApis.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.basic.dto;
18 |
19 | import com.fasterxml.jackson.annotation.JsonCreator;
20 | import com.fasterxml.jackson.annotation.JsonProperty;
21 | import lombok.Data;
22 | import lombok.NoArgsConstructor;
23 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
24 | import xyz.eulix.platform.common.support.validator.ValueOfEnum;
25 |
26 | import java.util.List;
27 | import java.util.Map;
28 |
29 | @Data
30 | @NoArgsConstructor
31 | public class PlatformApis {
32 | @JsonCreator
33 | public PlatformApis(@JsonProperty("version") String version,
34 | @JsonProperty("services") Map> services) {
35 | this.version = version;
36 | this.services = services;
37 | }
38 |
39 | private String version;
40 | private Map> services;
41 |
42 | @Data(staticConstructor = "of")
43 | public static class PlatformApi {
44 | @Schema(description = "http method")
45 | private final String method;
46 |
47 | @Schema(description = "uri,如/platform/v*/api/registry/box")
48 | private final String uri;
49 |
50 | @Schema(description = "简略uri,以四级目录开头,如/registry/box")
51 | private final String briefUri;
52 |
53 | @Schema(description = "兼容的API版本列表,如1,2,3")
54 | private final List compatibleVersions;
55 |
56 | @Schema(description = "API分类(空间平台基础api、空间平台扩展api、产品服务api),取值:basic_api、extension_api、product_service_api")
57 | @ValueOfEnum(enumClass = PlatformApiTypeEnum.class, valueMethod = "getName")
58 | private final String type;
59 |
60 | @Schema(description = "API描述")
61 | private final String desc;
62 | }
63 |
64 |
65 | }
66 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/basic/service/BaseService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.basic.service;
18 |
19 | import com.fasterxml.jackson.core.JsonProcessingException;
20 | import org.jboss.logging.Logger;
21 | import xyz.eulix.platform.common.support.serialization.OperationUtils;
22 | import xyz.eulix.platform.common.support.service.ServiceError;
23 | import xyz.eulix.platform.common.support.service.ServiceOperationException;
24 | import xyz.eulix.platform.services.basic.dto.PlatformApis;
25 | import xyz.eulix.platform.services.config.ApplicationProperties;
26 |
27 | import javax.enterprise.context.ApplicationScoped;
28 | import javax.enterprise.inject.Produces;
29 | import javax.inject.Inject;
30 | import java.io.*;
31 |
32 | @ApplicationScoped
33 | public class BaseService {
34 | private static final Logger LOG = Logger.getLogger("app.log");
35 |
36 | @Inject
37 | ApplicationProperties properties;
38 | @Inject
39 | OperationUtils utils;
40 |
41 | @Produces
42 | @SuppressWarnings("unused") // Used by DIC framework
43 | public PlatformApis apis() {
44 | PlatformApis routers;
45 | try{
46 | String json = utils.getStringFromFile(properties.getPlatformApisLocation());
47 | routers = utils.jsonToObject(json, PlatformApis.class);
48 | } catch (JsonProcessingException e) {
49 | LOG.errorv("platform apis created failed, processing json: " , e);
50 | throw new ServiceOperationException(ServiceError.API_JSON_EXCEPTION);
51 | } catch (IOException e) {
52 | LOG.errorv("platform apis created failed: read file " , e);
53 | throw new ServiceOperationException(ServiceError.API_IO_EXCEPTION);
54 | }
55 |
56 | return routers;
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/cache/GTRouteAppTokens.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.cache;
18 |
19 | import lombok.Getter;
20 | import lombok.Setter;
21 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
22 |
23 | import java.util.Set;
24 |
25 | /**
26 | * 以 `Redis sets` 的形式在 redis 存储
27 | * key - 表名:AppDomains, 字段: boxUUID
28 | * value - `sets` 中存储的元素为空间应用的域名,`app-token`
29 | */
30 | @Setter
31 | @Getter
32 | public class GTRouteAppTokens {
33 | @Schema(description = "boxUUID")
34 | private String boxUUID;
35 |
36 | @Schema(description = "appTokens")
37 | private Set appTokens;
38 |
39 | public GTRouteAppTokens(Set appTokens) {
40 | this.appTokens = appTokens;
41 | }
42 | }
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/cache/GTRouteBasic.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.cache;
18 |
19 | import lombok.Getter;
20 | import lombok.Setter;
21 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
22 |
23 | /**
24 | * key - 表名: GTR, 字段:空间的用户 subdomain
25 | * value - json 格式,包括主要字段如下:
26 | * - gtSvrNode - 目标域名, 即 network server (GT)node,如 `eulixnetwork-server.bp-cicada-rc.svc.cluster.local:80`
27 | * - gtCliId - network-client 配对的id, 如 `fae1e91d8ccf464daa1b3d0d9e3509fa`
28 | * - redirectDomain - 重定向的用户域名, 如 `b5r9qd8h.myself.com`
29 | * - redirectDomainStatus - 重定向域名状态,1表示正常,2表示已过期
30 | * - boxUUID - 盒子设备的 boxUUID
31 | * - userId - 盒子上用户对外的 id
32 | */
33 | @Setter
34 | @Getter
35 | public class GTRouteBasic {
36 | @Schema(description = "用户subdomain")
37 | private String subdomain;
38 |
39 | @Schema(description = "network server 地址 & network client id等基础数据")
40 | private NetworkBasic networkBasic;
41 |
42 | public GTRouteBasic(String subdomain, NetworkBasic networkBasic) {
43 | this.subdomain = subdomain;
44 | this.networkBasic = networkBasic;
45 | }
46 | }
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/cache/GTRouteClients.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.cache;
18 |
19 | import lombok.Getter;
20 | import lombok.Setter;
21 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
22 |
23 | import java.util.Set;
24 |
25 | /**
26 | * 以 `Redis sets` 的形式在 redis 存储
27 | * key - 表名:SpaceUUIDs, 字段: boxUUID+userId
28 | * value - `sets` 中存储的元素为 client-uuid
29 | */
30 | @Setter
31 | @Getter
32 | public class GTRouteClients {
33 | @Schema(description = "boxUUID")
34 | private String boxUUID;
35 |
36 | @Schema(description = "userId")
37 | private String userId;
38 |
39 | @Schema(description = "clientUUIDs")
40 | private Set clientUUIDs;
41 |
42 | public GTRouteClients(String boxUUID, String userId, Set clientUUIDs) {
43 | this.boxUUID = boxUUID;
44 | this.userId = userId;
45 | this.clientUUIDs = clientUUIDs;
46 | }
47 | }
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/cache/NSRRedirectStateEnum.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.cache;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Getter;
21 | import lombok.Setter;
22 |
23 | import java.util.Arrays;
24 |
25 | @AllArgsConstructor
26 | public enum NSRRedirectStateEnum {
27 | NORMAL(1, "重定向正常"),
28 | EXPIRED(2, "重定向已过期"),
29 | ;
30 |
31 | @Setter @Getter
32 | private Integer state;
33 |
34 | @Setter @Getter
35 | private String desc;
36 |
37 | public static NSRRedirectStateEnum fromValue(Integer value) {
38 | return Arrays.stream(values()).filter(state -> {
39 | if (state.getState().equals(value)) {
40 | return true;
41 | }
42 | return false;
43 | }).findFirst().orElseThrow();
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/cache/NSRoute.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.cache;
18 |
19 | import lombok.Getter;
20 | import lombok.Setter;
21 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
22 |
23 | /**
24 | * Network Server Route 缓存键值对
25 | */
26 | @Setter
27 | @Getter
28 | public class NSRoute {
29 | @Schema(description = "用户域名")
30 | private String userDomain;
31 |
32 | @Schema(description = "network server 地址 & network client id")
33 | private String networkInfo;
34 |
35 | public NSRoute(String userDomain, String networkInfo) {
36 | this.userDomain = userDomain;
37 | this.networkInfo = networkInfo;
38 | }
39 | }
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/config/ApplicationProperties.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.config;
18 |
19 | import io.quarkus.arc.config.ConfigProperties;
20 | import org.eclipse.microprofile.config.inject.ConfigProperty;
21 |
22 | import java.math.BigDecimal;
23 | import java.util.Optional;
24 |
25 | /**
26 | * Global application configuration properties.
27 | *
28 | * Impl ref:
29 | * https://quarkus.io/guides/config-reference
30 | */
31 | @ConfigProperties(prefix = "app")
32 | public interface ApplicationProperties {
33 |
34 | @ConfigProperty
35 | String getVersion();
36 |
37 | @ConfigProperty(name = "registry.subdomain")
38 | String getRegistrySubdomain();
39 |
40 | @ConfigProperty(name = "display.mach")
41 | Optional getDisplayMach();
42 |
43 | @ConfigProperty(name = "display.unit.name")
44 | String getDisplayUnitName();
45 |
46 | @ConfigProperty(name = "display.unit.factor")
47 | BigDecimal getDisplayUnitFactor();
48 |
49 | @ConfigProperty(name = "register.provider.name", defaultValue = "default")
50 | String getRegisterProviderName();
51 |
52 | @ConfigProperty(name = "api-resources.location")
53 | String getPlatformApisLocation();
54 |
55 | @ConfigProperty(name = "lock.expire-time", defaultValue = "30")
56 | Integer getLockExpireTime();
57 |
58 | @ConfigProperty(name = "migration.route.subdomain.expire-time", defaultValue = "259200")
59 | Integer getSubdomainRedirectTime();
60 | }
61 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/lock/DistributedLock.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.lock;
18 |
19 | import java.util.concurrent.TimeUnit;
20 |
21 | public interface DistributedLock {
22 | /**
23 | * 在有效时间内阻塞加锁,可被中断
24 | */
25 | boolean tryLock(long waitTime, TimeUnit unit) throws InterruptedException;
26 |
27 | /**
28 | * 尝试加锁
29 | */
30 | boolean tryLock();
31 |
32 | /**
33 | * 解锁操作
34 | */
35 | void unlock();
36 | }
37 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/lock/DistributedLockFactory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.lock;
18 |
19 | import io.quarkus.redis.client.RedisClient;
20 | import xyz.eulix.platform.services.config.ApplicationProperties;
21 | import xyz.eulix.platform.services.lock.service.ReentrantLockService;
22 |
23 | import javax.enterprise.context.ApplicationScoped;
24 | import javax.inject.Inject;
25 | import java.util.UUID;
26 |
27 | @ApplicationScoped
28 | public class DistributedLockFactory {
29 | @Inject
30 | RedisClient redisClient;
31 |
32 | @Inject
33 | ReentrantLockService mysqlLockService;
34 |
35 | @Inject
36 | ApplicationProperties applicationProperties;
37 |
38 | public DistributedLock newLock(String keyName, LockType lockType) {
39 | String lockValue = UUID.randomUUID().toString();
40 | Integer timeout = applicationProperties.getLockExpireTime(); // 单位s
41 |
42 | if (lockType.equals(LockType.RedisReentrantLock)) {
43 | return new RedisReentrantLock(redisClient, keyName, lockValue, timeout);
44 | } else if(lockType.equals(LockType.MySQLReentrantLock)) {
45 | return new MySQLReentrantLock(mysqlLockService, keyName, lockValue, timeout);
46 | } else {
47 | throw new IllegalArgumentException("Invalid lock type: " + lockType);
48 | }
49 |
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/lock/DistributedReadWriteLock.java:
--------------------------------------------------------------------------------
1 | package xyz.eulix.platform.services.lock;
2 |
3 |
4 | /**
5 | * @author VvV
6 | * @date 2023/8/4
7 | */
8 | public interface DistributedReadWriteLock {
9 | /**
10 | * Returns the lock used for reading.
11 | */
12 | DistributedLock readLock();
13 |
14 | /**
15 | * Returns the lock used for writing.
16 | */
17 | DistributedLock writeLock();
18 | }
19 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/lock/DistributedReadWriteLockFactory.java:
--------------------------------------------------------------------------------
1 | package xyz.eulix.platform.services.lock;
2 |
3 | import io.quarkus.redis.client.RedisClient;
4 | import xyz.eulix.platform.services.config.ApplicationProperties;
5 | import xyz.eulix.platform.services.lock.service.ReentrantReadWriteLockService;
6 |
7 | import javax.enterprise.context.ApplicationScoped;
8 | import javax.inject.Inject;
9 |
10 | /**
11 | * @author VvV
12 | * @date 2023/8/4
13 | */
14 | @ApplicationScoped
15 | public class DistributedReadWriteLockFactory {
16 |
17 | @Inject
18 | RedisClient redisClient;
19 |
20 | @Inject
21 | ReentrantReadWriteLockService mysqlLockService;
22 |
23 | @Inject
24 | ApplicationProperties applicationProperties;
25 |
26 | public DistributedReadWriteLock newLock(String keyName, LockType lockType) {
27 | Integer timeout = applicationProperties.getLockExpireTime(); // 单位s
28 |
29 | if(lockType.equals(LockType.MySQLReentrantReadWriteLock)) {
30 | return new MySQLReentrantReadWriteLock(mysqlLockService, keyName, timeout);
31 | } else if (lockType.equals(LockType.RedisReentrantReadWriteLock)) {
32 | return new RedisReentrantReadWriteLock(redisClient, keyName, timeout);
33 | } else {
34 | throw new IllegalArgumentException("Invalid lock type: " + lockType);
35 | }
36 |
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/lock/LockType.java:
--------------------------------------------------------------------------------
1 | package xyz.eulix.platform.services.lock;
2 |
3 | /**
4 | * @author VvV
5 | * @date 2023/7/27
6 | */
7 | public enum LockType {
8 |
9 | RedisReentrantLock,
10 |
11 | MySQLReentrantLock,
12 |
13 | MySQLReentrantReadWriteLock,
14 |
15 | RedisReentrantReadWriteLock
16 | }
17 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/lock/MySQLReentrantLock.java:
--------------------------------------------------------------------------------
1 | package xyz.eulix.platform.services.lock;
2 |
3 | import org.jboss.logging.Logger;
4 | import xyz.eulix.platform.services.lock.service.ReentrantLockService;
5 |
6 | import java.util.concurrent.TimeUnit;
7 |
8 | public class MySQLReentrantLock implements DistributedLock {
9 |
10 | private static final Logger LOG = Logger.getLogger("app.log");
11 |
12 | private ReentrantLockService lockService;
13 |
14 | // 锁的key(资源的唯一标识)
15 | private String keyName;
16 |
17 | // 拥有锁的实例uuid
18 | private String lockValue;
19 |
20 | // 锁超时时间
21 | private Integer timeout;
22 |
23 | public MySQLReentrantLock(ReentrantLockService lockService, String keyName, String lockValue, Integer timeout) {
24 | this.lockService = lockService;
25 | this.keyName = keyName;
26 | this.lockValue = lockValue;
27 | this.timeout = timeout * 1000; // 单位ms
28 | }
29 |
30 | @Override
31 | public boolean tryLock(long waitTime, TimeUnit unit) throws InterruptedException {
32 | long start = System.currentTimeMillis();
33 | long end;
34 | long sleepTime = 1L; // 重试间隔时间,单位ms。指数增长,最大值为1024ms
35 | do {
36 | //尝试获取锁
37 | boolean success = tryLock();
38 | if (success) {
39 | //成功获取锁,返回
40 | LOG.debugv("acquire lock success, keyName:{0}", keyName);
41 | return true;
42 | }
43 | // 等待后继续尝试获取
44 | if (sleepTime < 1000L) {
45 | sleepTime = sleepTime << 1;
46 | }
47 | LOG.debugv("acquire lock fail, retry after: {0}ms", sleepTime);
48 | Thread.sleep(sleepTime);
49 | end = System.currentTimeMillis();
50 | } while (end-start < unit.toMillis(waitTime));
51 | LOG.debugv("acquire lock timeout, elapsed: {0}ms", System.currentTimeMillis() - start);
52 | return false;
53 | }
54 |
55 | @Override
56 | public boolean tryLock() {
57 | lockService.deleteExpiredLock(keyName);
58 | return lockService.tryLock(keyName, lockValue, timeout);
59 | }
60 |
61 | @Override
62 | public void unlock() {
63 | lockService.releaseLock(keyName, lockValue, timeout);
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/lock/dto/ReentrantReadWriteLock.java:
--------------------------------------------------------------------------------
1 | package xyz.eulix.platform.services.lock.dto;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 | import lombok.ToString;
6 |
7 | import java.sql.Timestamp;
8 | import java.util.Map;
9 |
10 | /**
11 | * @author VvV
12 | * @date 2023/8/7
13 | */
14 | @Getter
15 | @Setter
16 | @ToString
17 | public class ReentrantReadWriteLock {
18 | private String lockKey;
19 |
20 | private Timestamp expiresAt;
21 |
22 | private String mode;
23 |
24 | private Map lockHoldsMap;
25 |
26 | private Integer version;
27 | }
28 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/lock/entity/ReentrantLockEntity.java:
--------------------------------------------------------------------------------
1 | package xyz.eulix.platform.services.lock.entity;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 |
6 | import javax.persistence.*;
7 | import javax.validation.constraints.NotBlank;
8 | import javax.validation.constraints.NotNull;
9 | import java.sql.Timestamp;
10 |
11 | /**
12 | * @author VvV
13 | * @date 2023/7/31
14 | */
15 |
16 | @Entity
17 | @Getter
18 | @Setter
19 | @Table(name = "distributed_reentrant_locks")
20 | public class ReentrantLockEntity {
21 |
22 | @Id
23 | @Column(name = "lock_key")
24 | private String lockKey;
25 |
26 | @Column(name = "lock_value")
27 | @NotBlank
28 | private String lockValue;
29 |
30 | @Column(name = "expires_at")
31 | @NotNull
32 | private Timestamp expiresAt;
33 |
34 | @Column(name = "reentrant_count")
35 | @NotNull
36 | private Integer reentrantCount;
37 | }
38 |
39 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/lock/entity/ReentrantReadWriteLockEntity.java:
--------------------------------------------------------------------------------
1 | package xyz.eulix.platform.services.lock.entity;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 | import lombok.ToString;
6 |
7 | import javax.persistence.*;
8 | import javax.validation.constraints.NotNull;
9 | import java.sql.Timestamp;
10 |
11 | /**
12 | * @author VvV
13 | * @date 2023/8/6
14 | */
15 | @Entity
16 | @Getter
17 | @Setter
18 | @ToString
19 | @Table(name = "distributed_reentrant_read_write_locks")
20 | public class ReentrantReadWriteLockEntity {
21 |
22 | @Id
23 | @Column(name = "lock_key")
24 | private String lockKey;
25 |
26 | @Column(name = "expires_at")
27 | @NotNull(message = "Expiration timestamp is required")
28 | private Timestamp expiresAt;
29 |
30 | @Column(name = "mode")
31 | private String mode;
32 |
33 | /**
34 | * JSON string that stores the UUIDs and reentrant counts of all read locks
35 | */
36 | @Column(name = "lock_holds_json")
37 | private String lockHoldsJSON;
38 |
39 | @Version
40 | @Column(name = "version", nullable = false)
41 | private Integer version;
42 | }
43 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/lock/repository/ReentrantLockRepository.java:
--------------------------------------------------------------------------------
1 | package xyz.eulix.platform.services.lock.repository;
2 |
3 | import io.quarkus.hibernate.orm.panache.PanacheRepository;
4 | import xyz.eulix.platform.services.lock.entity.ReentrantLockEntity;
5 |
6 | import javax.enterprise.context.ApplicationScoped;
7 |
8 | /**
9 | * @author VvV
10 | * @date 2023/7/31
11 | */
12 | @ApplicationScoped
13 | public class ReentrantLockRepository implements PanacheRepository {
14 |
15 | public ReentrantLockEntity findByLockKey(String lockKey) {
16 | return this.find("lock_key", lockKey).firstResult();
17 | }
18 |
19 | public void save(ReentrantLockEntity lock) {
20 | this.persistAndFlush(lock);
21 | }
22 |
23 | public void update(ReentrantLockEntity lock) {
24 | this.update("lock_value = ?1, expires_at = ?2, reentrant_count = ?3 where lock_key = ?4",
25 | lock.getLockValue(), lock.getExpiresAt(), lock.getReentrantCount(), lock.getLockKey());
26 | }
27 |
28 | public void deleteByLockKey(String lockKey) {
29 | this.delete("lock_key", lockKey);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/lock/repository/ReentrantReadWriteLockRepository.java:
--------------------------------------------------------------------------------
1 | package xyz.eulix.platform.services.lock.repository;
2 |
3 | import io.quarkus.hibernate.orm.panache.PanacheRepository;
4 | import xyz.eulix.platform.services.lock.entity.ReentrantReadWriteLockEntity;
5 |
6 | import javax.enterprise.context.Dependent;
7 |
8 | /**
9 | * @author VvV
10 | * @date 2023/8/7
11 | */
12 | @Dependent
13 | public class ReentrantReadWriteLockRepository implements PanacheRepository {
14 |
15 | public ReentrantReadWriteLockEntity findByLockKey(String lockKey) {
16 | return this.find("lock_key", lockKey).firstResult();
17 | }
18 |
19 | public void save(ReentrantReadWriteLockEntity lock) {
20 | this.persistAndFlush(lock);
21 | }
22 |
23 | public void deleteByLockKey(String lockKey) {
24 | this.delete("lock_key", lockKey);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/migration/dto/BoxMigrationInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.migration.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import javax.validation.Valid;
23 | import javax.validation.constraints.NotEmpty;
24 | import java.util.List;
25 |
26 | /**
27 | * 盒子割接信息
28 | */
29 | @Data
30 | public class BoxMigrationInfo {
31 | @Schema(description = "network client id;传参为空时将由平台重新生成")
32 | private String networkClientId;
33 |
34 | @Valid
35 | @NotEmpty
36 | @Schema(description = "用户列表")
37 | private List userInfos;
38 | }
39 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/migration/dto/BoxMigrationResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.migration.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 | import xyz.eulix.platform.services.registry.dto.registry.NetworkClient;
22 |
23 | import java.util.List;
24 |
25 | /**
26 | * 盒子割接结果
27 | */
28 | @Data(staticConstructor = "of")
29 | public class BoxMigrationResult {
30 | @Schema(description = "盒子的 UUID")
31 | private final String boxUUID;
32 |
33 | @Schema(description = "为盒子分配的 network client 信息")
34 | private final NetworkClient networkClient;
35 |
36 | @Schema(description = "用户列表")
37 | private final List userInfos;
38 | }
39 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/migration/dto/ClientMigrationInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.migration.dto;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Data;
21 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
22 | import xyz.eulix.platform.services.registry.dto.registry.RegistryTypeEnum;
23 | import xyz.eulix.platform.common.support.validator.ValueOfEnum;
24 |
25 | import javax.validation.constraints.NotBlank;
26 |
27 | /**
28 | * 客户端割接信息
29 | */
30 | @Data
31 | @AllArgsConstructor(staticName = "of")
32 | public class ClientMigrationInfo {
33 | @NotBlank
34 | @Schema(description = "客户端的 UUID")
35 | private String clientUUID;
36 |
37 | @NotBlank
38 | @Schema(description = "客户端类型(绑定、扫码授权),取值:client_bind、client_auth")
39 | @ValueOfEnum(enumClass = RegistryTypeEnum.class, valueMethod = "getName")
40 | private String clientType;
41 | }
42 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/migration/dto/MigrationRouteInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.migration.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import javax.validation.Valid;
23 | import javax.validation.constraints.NotEmpty;
24 | import java.util.List;
25 |
26 | /**
27 | * 用户域名映射信息
28 | */
29 | @Data
30 | public class MigrationRouteInfo {
31 | @Valid
32 | @NotEmpty
33 | @Schema(description = "userDomain 映射关系")
34 | private List userDomainRouteInfos;
35 | }
36 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/migration/dto/MigrationRouteResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.migration.dto;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Data;
21 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
22 |
23 | import java.util.List;
24 |
25 | /**
26 | * 用户域名映射信息
27 | */
28 | @Data
29 | @AllArgsConstructor(staticName = "of")
30 | public class MigrationRouteResult {
31 | @Schema(description = "盒子的 UUID")
32 | private String boxUUID;
33 |
34 | @Schema(description = "subdomain映射关系")
35 | private List userDomainRouteInfos;
36 | }
37 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/migration/dto/NetworkInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.migration.dto;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Data;
21 |
22 | @Data
23 | @AllArgsConstructor(staticName = "of")
24 | public class NetworkInfo {
25 | String serverAddr;
26 | String clientId;
27 | String userDomain;
28 | }
29 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/migration/dto/UserDomainRouteInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.migration.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import javax.validation.constraints.NotBlank;
23 | import javax.validation.constraints.Pattern;
24 |
25 | /**
26 | * 用户域名映射信息
27 | */
28 | @Data
29 | public class UserDomainRouteInfo {
30 | @NotBlank
31 | @Schema(description = "当前userId")
32 | private String userId;
33 |
34 | @NotBlank
35 | @Schema(description = "重定向 userDomain")
36 | @Pattern(regexp = "^[a-z][a-z0-9]{5,19}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62}){1,5}\\.?")
37 | private String userDomainRedirect;
38 | }
39 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/migration/dto/UserMigrationInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.migration.dto;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Data;
21 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
22 | import xyz.eulix.platform.services.registry.dto.registry.RegistryTypeEnum;
23 | import xyz.eulix.platform.common.support.validator.ValueOfEnum;
24 |
25 | import javax.validation.Valid;
26 | import javax.validation.constraints.NotBlank;
27 | import java.util.List;
28 |
29 | /**
30 | * 用户割接信息
31 | */
32 | @Data
33 | @AllArgsConstructor(staticName = "of")
34 | public class UserMigrationInfo {
35 | @NotBlank
36 | @Schema(description = "用户的 ID")
37 | private String userId;
38 |
39 | @NotBlank
40 | @Schema(description = "用户被指定的用户域名字段")
41 | private String userDomain;
42 |
43 | @NotBlank
44 | @Schema(description = "用户类型(管理员、普通成员),取值:user_admin、user_member")
45 | @ValueOfEnum(enumClass = RegistryTypeEnum.class, valueMethod = "getName")
46 | private String userType;
47 |
48 | @Valid
49 | @Schema(description = "Client 列表")
50 | private List clientInfos;
51 | }
52 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/network/dto/BaseResultRes.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.network.dto;
18 |
19 | import lombok.Data;
20 |
21 | @Data(staticConstructor = "of")
22 | public class BaseResultRes {
23 | private final Boolean result;
24 | }
25 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/network/dto/NetworkAuthReq.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.network.dto;
18 |
19 | import javax.validation.constraints.NotBlank;
20 | import lombok.AllArgsConstructor;
21 | import lombok.Data;
22 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
23 |
24 | @Data
25 | @AllArgsConstructor(staticName = "of")
26 | public class NetworkAuthReq {
27 | @NotBlank
28 | @Schema(description = "network client id")
29 | private String networkClientId;
30 |
31 | @NotBlank
32 | @Schema(description = "network client 访问密钥")
33 | private String networkSecretKey;
34 | }
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/network/dto/NetworkServerExtraInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.network.dto;
18 |
19 | import com.fasterxml.jackson.annotation.JsonProperty;
20 | import lombok.Data;
21 |
22 | @Data(staticConstructor = "of")
23 | public class NetworkServerExtraInfo {
24 | @JsonProperty("stun_addr")
25 | private String stunAddress;
26 | }
27 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/network/dto/NetworkServerRes.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.network.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | @Data(staticConstructor = "of")
23 | public class NetworkServerRes {
24 | @Schema(description = "透传服务器地址")
25 | private final String serverAddress;
26 |
27 | @Schema(description = "stun服务器地址")
28 | private final String stunAddress;
29 | }
30 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/network/dto/NetworkServerStateEnum.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.network.dto;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Getter;
21 | import lombok.Setter;
22 |
23 | import java.util.Arrays;
24 |
25 | @AllArgsConstructor
26 | public enum NetworkServerStateEnum {
27 | OFFLINE(0, "未启用"),
28 | ONLINE(1, "已上线")
29 | ;
30 |
31 | @Setter @Getter
32 | private Integer state;
33 |
34 | @Setter @Getter
35 | private String desc;
36 |
37 | public static NetworkServerStateEnum fromValue(Integer value) {
38 | return Arrays.stream(values()).filter(state -> {
39 | if (state.getState().equals(value)) {
40 | return true;
41 | }
42 | return false;
43 | }).findFirst().orElseThrow();
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/network/dto/StunServerRes.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.network.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | @Data(staticConstructor = "of")
23 | public class StunServerRes {
24 | @Schema(description = "STUN服务器地址")
25 | private final String stunAddress;
26 | }
27 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/network/entity/NetworkRouteEntity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.network.entity;
18 |
19 | import lombok.*;
20 | import xyz.eulix.platform.common.support.model.BaseEntity;
21 |
22 | import javax.persistence.Column;
23 | import javax.persistence.Entity;
24 | import javax.persistence.Table;
25 | import javax.validation.constraints.NotBlank;
26 | import javax.validation.constraints.NotNull;
27 |
28 |
29 | @Getter
30 | @Setter
31 | @ToString(callSuper = true)
32 | @Entity
33 | @Table(name = "network_client_server_route")
34 | @AllArgsConstructor(staticName = "of")
35 | @NoArgsConstructor
36 | public class NetworkRouteEntity extends BaseEntity {
37 | @NotBlank
38 | @Column(name = "network_client_id")
39 | private String clientId;
40 |
41 | @NotNull
42 | @Column(name = "network_server_id")
43 | private Long serverId;
44 | }
45 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/network/entity/NetworkServerEntity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.network.entity;
18 |
19 | import lombok.*;
20 | import xyz.eulix.platform.services.network.dto.NetworkServerStateEnum;
21 | import xyz.eulix.platform.common.support.model.BaseEntity;
22 | import xyz.eulix.platform.common.support.validator.ValueOfEnum;
23 |
24 | import javax.persistence.Column;
25 | import javax.persistence.Entity;
26 | import javax.persistence.Table;
27 | import javax.validation.constraints.NotBlank;
28 | import javax.validation.constraints.NotNull;
29 |
30 |
31 | @Getter
32 | @Setter
33 | @ToString(callSuper = true)
34 | @Entity
35 | @Table(name = "network_server_info")
36 | @AllArgsConstructor(staticName = "of")
37 | @NoArgsConstructor
38 | public class NetworkServerEntity extends BaseEntity {
39 | @NotBlank
40 | @Column(name = "server_protocol")
41 | private String protocol;
42 |
43 | @NotBlank
44 | @Column(name = "server_addr")
45 | private String addr;
46 |
47 | @NotNull
48 | @Column(name = "server_port")
49 | private Integer port;
50 |
51 | @NotBlank
52 | @Column(name = "identifier")
53 | private String identifier;
54 |
55 | @NotNull
56 | @Column(name = "state")
57 | @ValueOfEnum(enumClass = NetworkServerStateEnum.class, valueMethod = "getState")
58 | private Integer state;
59 |
60 | // 扩展信息,json结构
61 | @Column(name = "extra")
62 | private String extra;
63 | }
64 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/network/repository/NetworkRouteEntityRepository.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.network.repository;
18 |
19 | import io.quarkus.hibernate.orm.panache.PanacheRepository;
20 | import xyz.eulix.platform.services.network.entity.NetworkRouteEntity;
21 |
22 | import javax.enterprise.context.ApplicationScoped;
23 | import java.util.Optional;
24 |
25 | @ApplicationScoped
26 | public class NetworkRouteEntityRepository implements PanacheRepository {
27 | // 根据network_client_id查询资源
28 | private static final String FIND_BY_CLIENTID = "network_client_id=?1";
29 |
30 | public Optional findByClientId(String networkClientId) {
31 | return this.find(FIND_BY_CLIENTID, networkClientId).firstResultOptional();
32 | }
33 |
34 | public void deleteByClientID(String clientId) {
35 | this.delete(FIND_BY_CLIENTID, clientId);
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/network/repository/NetworkServerEntityRepository.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.network.repository;
18 |
19 | import io.quarkus.hibernate.orm.panache.PanacheRepository;
20 | import xyz.eulix.platform.services.network.entity.NetworkServerEntity;
21 |
22 | import javax.enterprise.context.ApplicationScoped;
23 |
24 | @ApplicationScoped
25 | public class NetworkServerEntityRepository implements PanacheRepository {
26 | }
27 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/provider/ProviderFactory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.provider;
18 |
19 | import xyz.eulix.platform.services.config.ApplicationProperties;
20 | import xyz.eulix.platform.services.provider.inf.RegistryProvider;
21 |
22 | import javax.enterprise.context.ApplicationScoped;
23 | import javax.inject.Inject;
24 | import java.util.Map;
25 | import java.util.concurrent.ConcurrentHashMap;
26 |
27 | @ApplicationScoped
28 | public class ProviderFactory {
29 | private static final String PROVIDER_NAME = "default";
30 | private static final Map map = new ConcurrentHashMap<>();
31 |
32 | @Inject
33 | ApplicationProperties properties;
34 |
35 | public static void putRegisterProvider(String name, RegistryProvider registryProvider){
36 | map.put(name, registryProvider);
37 | }
38 |
39 | public RegistryProvider getRegistryProvider() {
40 | String name = properties.getRegisterProviderName();
41 | if (map.containsKey(name)) {
42 | return map.get(name);
43 | } else {
44 | return map.get(PROVIDER_NAME);
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/provider/inf/RegistryProvider.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.provider.inf;
18 |
19 | import xyz.eulix.platform.services.token.dto.TokenInfo;
20 |
21 | /**
22 | * 注册相关Provider,可自定义实现
23 | */
24 | public interface RegistryProvider {
25 | /**
26 | * 盒子身份认证
27 | *
28 | * @param tokenInfo tokenInfo
29 | */
30 | void isBoxIllegal(TokenInfo tokenInfo);
31 |
32 | /**
33 | * 计算network路由
34 | *
35 | * @param networkClientId networkClientId
36 | * @return networkServerId
37 | */
38 | Long calculateNetworkRoute(String networkClientId);
39 |
40 | /**
41 | * 验证子域名是否合法
42 | *
43 | * @param subdomain 子域名
44 | * @return 是否合法
45 | */
46 | Boolean isSubdomainIllegal(String subdomain);
47 | }
48 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto;
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/BaseResultRes.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.Data;
20 |
21 | @Data(staticConstructor = "of")
22 | public class BaseResultRes {
23 | private final Boolean result;
24 | }
25 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/BoxRegistryDetailInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import java.time.OffsetDateTime;
23 | import java.util.List;
24 |
25 | @Data(staticConstructor = "of")
26 | public class BoxRegistryDetailInfo {
27 | @Schema(description = "为盒子分配的 network client 信息")
28 | private final String networkClientId;
29 |
30 | @Schema(description = "创建时间")
31 | private final OffsetDateTime createdAt;
32 |
33 | @Schema(description = "修改时间")
34 | private final OffsetDateTime updatedAt;
35 |
36 | @Schema(description = "盒子下用户信息")
37 | private final List userInfos;
38 | }
39 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/BoxRegistryInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import javax.validation.constraints.NotBlank;
23 |
24 | /**
25 | * Used to define a data transfer object as REST request for holding related parameters
26 | * of registry information.
27 | */
28 | @Data
29 | public class BoxRegistryInfo {
30 | @NotBlank
31 | @Schema(description = "盒子的 UUID")
32 | private String boxUUID;
33 | }
34 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/BoxRegistryResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 | import xyz.eulix.platform.services.registry.dto.registry.NetworkClient;
22 |
23 | /**
24 | * Used to define a data transfer object as REST response for holding related result
25 | * of activation result.
26 | */
27 | @Data(staticConstructor = "of")
28 | public class BoxRegistryResult {
29 | @Schema(description = "盒子的 UUID")
30 | private final String boxUUID;
31 |
32 | @Schema(description = "为盒子分配的 network client 信息")
33 | private final NetworkClient networkClient;
34 | }
35 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/ClientRegistryDetailInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import java.time.OffsetDateTime;
23 |
24 | @Data(staticConstructor = "of")
25 | public class ClientRegistryDetailInfo {
26 | @Schema(description = "注册类型")
27 | private final String userType;
28 |
29 | @Schema(description = "客户端UUID")
30 | private final String clientUUID;
31 |
32 | @Schema(description = "创建时间")
33 | private final OffsetDateTime createdAt;
34 | }
35 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/ClientRegistryInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 | import xyz.eulix.platform.services.registry.dto.registry.RegistryTypeEnum;
22 | import xyz.eulix.platform.common.support.validator.ValueOfEnum;
23 |
24 | import javax.validation.constraints.NotBlank;
25 |
26 | /**
27 | * Used to define a data transfer object as REST request for holding related parameters
28 | * of registry information.
29 | */
30 | @Data
31 | public class ClientRegistryInfo {
32 | @NotBlank
33 | @Schema(description = "客户端的 UUID")
34 | private String clientUUID;
35 |
36 | @NotBlank
37 | @Schema(description = "客户端类型(绑定、扫码授权),取值:client_bind、client_auth")
38 | @ValueOfEnum(enumClass = RegistryTypeEnum.class, valueMethod = "getName")
39 | private String clientType;
40 | }
41 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/ClientRegistryResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Data;
21 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
22 |
23 | /**
24 | * Used to define a data transfer object as REST response for holding related result
25 | * of activation result.
26 | */
27 | @Data
28 | @AllArgsConstructor(staticName = "of")
29 | public class ClientRegistryResult {
30 |
31 | @Schema(description = "盒子的 UUID")
32 | private String boxUUID;
33 |
34 | @Schema(description = "用户的 ID")
35 | private String userId;
36 |
37 | @Schema(description = "客户端的 UUID")
38 | private String clientUUID;
39 |
40 | @Schema(description = "客户端类型(绑定、扫码授权),取值:client_bind、client_auth")
41 | private String clientType;
42 | }
43 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/NetworkClient.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | @Data(staticConstructor = "of")
23 | public class NetworkClient {
24 | @Schema(description = "指定的客户端 ID")
25 | private final String clientId;
26 |
27 | @Schema(description = "指定的访问密钥")
28 | private final String secretKey;
29 | }
30 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/RegistryTypeEnum.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Getter;
21 |
22 | import java.util.Arrays;
23 |
24 | @AllArgsConstructor
25 | public enum RegistryTypeEnum {
26 | BOX("box", "傲来盒子"),
27 | USER_ADMIN("user_admin", "用户管理员"),
28 | USER_MEMBER("user_member", "用户成员"),
29 | CLIENT_BIND("client_bind", "绑定类型客户端"),
30 | CLIENT_AUTH("client_auth", "授权类型客户端"),
31 | ;
32 |
33 | @Getter
34 | private final String name;
35 |
36 | @Getter
37 | private final String desc;
38 |
39 | public static RegistryTypeEnum fromValue(String value) {
40 | return Arrays.stream(values()).filter(appType -> appType.getName().equals(value)).findFirst().orElseThrow();
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/SubdomainGenInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Data;
21 | import lombok.NoArgsConstructor;
22 | import org.checkerframework.checker.units.qual.A;
23 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
24 |
25 | import javax.validation.constraints.Max;
26 |
27 | /**
28 | * Used to define a data transfer object as REST response for holding related result
29 | * of activation result.
30 | */
31 | @Data
32 | @AllArgsConstructor(staticName = "of")
33 | @NoArgsConstructor
34 | public class SubdomainGenInfo {
35 | @Schema(description = "有效期,单位秒,最长7天")
36 | @Max(604800)
37 | private Integer effectiveTime;
38 | }
39 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/SubdomainGenResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Data;
21 | import lombok.NoArgsConstructor;
22 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
23 |
24 | import java.time.OffsetDateTime;
25 |
26 | /**
27 | * Used to define a data transfer object as REST response for holding related result
28 | * of activation result.
29 | */
30 | @Data
31 | @AllArgsConstructor(staticName = "of")
32 | public class SubdomainGenResult {
33 | @Schema(description = "盒子的 UUID")
34 | private String boxUUID;
35 |
36 | @Schema(description = "全局唯一的 subdomain")
37 | private String subdomain;
38 |
39 | @Schema(description = "subdomain过期时间")
40 | private OffsetDateTime expiresAt;
41 | }
42 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/SubdomainStateEnum.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Getter;
21 | import lombok.Setter;
22 |
23 | import java.util.Arrays;
24 |
25 | @AllArgsConstructor
26 | public enum SubdomainStateEnum {
27 | TEMPORARY(0, "临时"),
28 | USED(1, "正在使用"),
29 | HISTORY(2, "历史使用"),
30 | MIGRATED(3, "已迁移"),
31 | ;
32 |
33 | @Setter @Getter
34 | private Integer state;
35 |
36 | @Setter @Getter
37 | private String desc;
38 |
39 | public static SubdomainStateEnum fromValue(Integer value) {
40 | return Arrays.stream(values()).filter(state -> {
41 | if (state.getState().equals(value)) {
42 | return true;
43 | }
44 | return false;
45 | }).findFirst().orElseThrow();
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/SubdomainUpdateInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import javax.validation.constraints.NotBlank;
23 | import javax.validation.constraints.Pattern;
24 | import javax.validation.constraints.Size;
25 |
26 | /**
27 | * Used to define a data transfer object as REST response for holding related result
28 | * of activation result.
29 | */
30 | @Data
31 | public class SubdomainUpdateInfo {
32 | @Schema(description = "子域名,正则表达式:^[a-z0-9-]{1,63}$")
33 | @Pattern(regexp = "^[a-z0-9-]{1,63}$")
34 | @NotBlank
35 | private String subdomain;
36 | }
37 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/SubdomainUpdateResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import java.util.List;
23 |
24 | /**
25 | * Used to define a data transfer object as REST response for holding related result
26 | * of activation result.
27 | */
28 | @Data
29 | public class SubdomainUpdateResult {
30 | @Schema(description = "是否成功")
31 | private Boolean success;
32 |
33 | @Schema(description = "盒子的 UUID, success为true时返回")
34 | private String boxUUID;
35 |
36 | @Schema(description = "用户id, success为true时返回")
37 | private String userId;
38 |
39 | @Schema(description = "全局唯一的 subdomain, success为true时返回")
40 | private String subdomain;
41 |
42 | @Schema(description = "错误码, success为false时返回")
43 | private Integer code;
44 |
45 | @Schema(description = "错误消息, success为false时返回")
46 | private String error;
47 |
48 | @Schema(description = "推荐的subdomain, success为false时返回")
49 | private List recommends;
50 | }
51 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/UserRegistryDetailInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import java.time.OffsetDateTime;
23 | import java.util.List;
24 |
25 | @Data(staticConstructor = "of")
26 | public class UserRegistryDetailInfo {
27 | @Schema(description = "为用户分配的用户域名,该域名可以用于后续的业务访问")
28 | private final String userDomain;
29 |
30 | @Schema(description = "子域名")
31 | private final String subDomain;
32 |
33 | @Schema(description = "注册类型")
34 | private final String userType;
35 |
36 | @Schema(description = "用户id")
37 | private final String userId;
38 |
39 | @Schema(description = "创建时间")
40 | private final OffsetDateTime createdAt;
41 |
42 | @Schema(description = "client相关信息")
43 | private final List clientInfos;
44 | }
45 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/UserRegistryInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Data;
21 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
22 | import xyz.eulix.platform.services.registry.dto.registry.RegistryTypeEnum;
23 | import xyz.eulix.platform.common.support.validator.ValueOfEnum;
24 |
25 | import javax.validation.constraints.NotBlank;
26 |
27 | /**
28 | * Used to define a data transfer object as REST request for holding related parameters
29 | * of registry information.
30 | */
31 | @Data
32 | @AllArgsConstructor(staticName = "of")
33 | public class UserRegistryInfo {
34 | @NotBlank
35 | @Schema(description = "用户的 ID")
36 | private String userId;
37 |
38 | @Schema(description = "用户被指定的子域名字段")
39 | private String subdomain;
40 |
41 | @NotBlank
42 | @Schema(description = "用户类型(管理员、普通成员),取值:user_admin、user_member")
43 | @ValueOfEnum(enumClass = RegistryTypeEnum.class, valueMethod = "getName")
44 | private String userType;
45 |
46 | @NotBlank
47 | @Schema(description = "客户端的 UUID")
48 | private String clientUUID;
49 | }
50 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/dto/registry/UserRegistryResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.dto.registry;
18 |
19 | import lombok.AllArgsConstructor;
20 | import lombok.Data;
21 | import lombok.NoArgsConstructor;
22 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
23 |
24 | /**
25 | * Used to define a data transfer object as REST response for holding related result
26 | * of activation result.
27 | */
28 | @Data
29 | @AllArgsConstructor(staticName = "of")
30 | @NoArgsConstructor
31 | public class UserRegistryResult {
32 | @Schema(description = "盒子的 UUID")
33 | private String boxUUID;
34 |
35 | @Schema(description = "用户的 ID")
36 | private String userId;
37 |
38 | @Schema(description = "为用户分配的用户域名,该域名可以用于后续的业务访问")
39 | private String userDomain;
40 |
41 | @Schema(description = "用户类型(管理员、普通成员),取值:user_admin、user_member")
42 | private String userType;
43 |
44 | @Schema(description = "客户端的 UUID")
45 | private String clientUUID;
46 | }
47 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/entity/RegistryBoxEntity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.entity;
18 |
19 | import lombok.Getter;
20 | import lombok.Setter;
21 | import lombok.ToString;
22 | import xyz.eulix.platform.common.support.model.BaseEntity;
23 |
24 | import javax.persistence.Column;
25 | import javax.persistence.Entity;
26 | import javax.persistence.Table;
27 | import javax.validation.constraints.NotBlank;
28 |
29 | @Getter @Setter @ToString(callSuper = true)
30 | @Entity @Table(name = "box_registries")
31 | public class RegistryBoxEntity extends BaseEntity {
32 |
33 | @NotBlank
34 | @Column(name = "box_reg_key")
35 | private String boxRegKey;
36 |
37 | @NotBlank
38 | @Column(name = "box_uuid")
39 | private String boxUUID;
40 |
41 | @NotBlank
42 | @Column(name = "network_client_id")
43 | private String networkClientId;
44 |
45 | @Column(name = "network_secret_key")
46 | private String networkSecretKey;
47 |
48 | @Column(name = "network_secret_salt")
49 | private String networkSecretSalt;
50 | }
51 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/entity/RegistryClientEntity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.entity;
18 |
19 | import lombok.Getter;
20 | import lombok.Setter;
21 | import lombok.ToString;
22 | import xyz.eulix.platform.services.registry.dto.registry.RegistryTypeEnum;
23 | import xyz.eulix.platform.common.support.model.BaseEntity;
24 | import xyz.eulix.platform.common.support.validator.ValueOfEnum;
25 |
26 | import javax.persistence.Column;
27 | import javax.persistence.Entity;
28 | import javax.persistence.Table;
29 | import javax.validation.constraints.NotBlank;
30 |
31 | @Getter @Setter @ToString(callSuper = true)
32 | @Entity @Table(name = "client_registries")
33 | public class RegistryClientEntity extends BaseEntity {
34 | @NotBlank
35 | @Column(name = "client_reg_key")
36 | private String clientRegKey;
37 |
38 | @NotBlank
39 | @Column(name = "box_uuid")
40 | private String boxUUID;
41 |
42 | @NotBlank
43 | @Column(name = "user_id")
44 | private String userId;
45 |
46 | @NotBlank
47 | @Column(name = "client_uuid")
48 | private String clientUUID;
49 |
50 | @NotBlank
51 | @Column(name = "type")
52 | @ValueOfEnum(enumClass = RegistryTypeEnum.class, valueMethod = "getName")
53 | private String registryType;
54 | }
55 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/entity/RegistryUserEntity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.entity;
18 |
19 | import lombok.Getter;
20 | import lombok.Setter;
21 | import lombok.ToString;
22 | import xyz.eulix.platform.services.registry.dto.registry.RegistryTypeEnum;
23 | import xyz.eulix.platform.common.support.model.BaseEntity;
24 | import xyz.eulix.platform.common.support.validator.ValueOfEnum;
25 |
26 | import javax.persistence.Column;
27 | import javax.persistence.Entity;
28 | import javax.persistence.Table;
29 | import javax.validation.constraints.NotBlank;
30 |
31 | @Getter @Setter @ToString(callSuper = true)
32 | @Entity @Table(name = "user_registries")
33 | public class RegistryUserEntity extends BaseEntity {
34 | @NotBlank
35 | @Column(name = "user_reg_key")
36 | private String userRegKey;
37 |
38 | @NotBlank
39 | @Column(name = "box_uuid")
40 | private String boxUUID;
41 |
42 | @NotBlank
43 | @Column(name = "user_id")
44 | private String userId;
45 |
46 | @NotBlank
47 | @Column(name = "type")
48 | @ValueOfEnum(enumClass = RegistryTypeEnum.class, valueMethod = "getName")
49 | private String registryType;
50 | }
51 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/registry/entity/SubdomainEntity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.registry.entity;
18 |
19 | import lombok.Getter;
20 | import lombok.Setter;
21 | import lombok.ToString;
22 | import xyz.eulix.platform.services.registry.dto.registry.SubdomainStateEnum;
23 | import xyz.eulix.platform.common.support.model.BaseEntity;
24 | import xyz.eulix.platform.common.support.validator.ValueOfEnum;
25 |
26 | import javax.persistence.*;
27 | import javax.validation.constraints.NotBlank;
28 | import javax.validation.constraints.NotNull;
29 | import java.time.OffsetDateTime;
30 |
31 | @Getter @Setter @ToString(callSuper = true)
32 | @Entity @Table(name = "subdomain")
33 | // 用于正则匹配保留域名对应的已经注册域名. 由于需要使用 mysql 的 regexp/rlike 关键字来查询, 所以使用 NamedNativeQueries.
34 | @NamedNativeQueries({
35 | @NamedNativeQuery(name = "SubdomainEntity.findByRegexp",query = "select * from subdomain where subdomain REGEXP :regexp", resultClass=SubdomainEntity.class)
36 | })
37 | public class SubdomainEntity extends BaseEntity {
38 |
39 | @NotBlank
40 | @Column(name = "box_uuid")
41 | private String boxUUID;
42 |
43 | @Column(name = "user_id")
44 | private String userId;
45 |
46 | @NotBlank
47 | @Column(name = "subdomain")
48 | private String subdomain;
49 |
50 | @Column(name = "user_domain")
51 | private String userDomain;
52 |
53 | @NotNull
54 | @Column(name = "state")
55 | @ValueOfEnum(enumClass = SubdomainStateEnum.class, valueMethod = "getState")
56 | private Integer state;
57 |
58 | @Column(name = "expires_at")
59 | private OffsetDateTime expiresAt;
60 | }
61 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/token/dto/AuthTypeEnum.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.token.dto;
18 |
19 | import java.util.Arrays;
20 | import lombok.AllArgsConstructor;
21 | import lombok.Getter;
22 |
23 | @AllArgsConstructor
24 | public enum AuthTypeEnum {
25 | BOX_UUID("box_uuid", "box_uuid 验证"),
26 | BOX_PUB_KEY("box_pub_key", "box 公钥验证"),
27 |
28 | ;
29 |
30 | @Getter
31 | private final String name;
32 |
33 | @Getter
34 | private final String desc;
35 |
36 | public static AuthTypeEnum fromValue(String value) {
37 | return Arrays.stream(values()).filter(appType -> appType.getName().equals(value)).findFirst().orElseThrow();
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/token/dto/CheckTokenInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.token.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 | import xyz.eulix.platform.common.support.validator.ValueOfEnum;
22 |
23 | import javax.validation.constraints.NotBlank;
24 | import javax.validation.constraints.NotEmpty;
25 | import java.util.List;
26 |
27 | /**
28 | * Used to define a data transfer object as REST request for holding related parameters
29 | * of registry information.
30 | */
31 | @Data
32 | public class CheckTokenInfo {
33 | @NotBlank
34 | @Schema(description = "盒子的 UUID")
35 | private String boxUUID;
36 |
37 | @NotBlank
38 | @ValueOfEnum(enumClass = ServiceEnum.class, valueMethod = "getServiceId")
39 | @Schema(description = "平台id:空间平台(serviceId=10001)、产品服务平台(serviceId=10002)")
40 | private String serviceId;
41 |
42 | @NotBlank
43 | @Schema(description = "盒子在当前平台的注册码")
44 | private String boxRegKey;
45 | }
46 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/token/dto/CheckTokenResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.token.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import java.time.OffsetDateTime;
23 |
24 | /**
25 | * Used to define a data transfer object as REST response for holding related result
26 | * of activation result.
27 | */
28 | @Data(staticConstructor = "of")
29 | public class CheckTokenResult {
30 | @Schema(description = "盒子的 UUID")
31 | private final String boxUUID;
32 |
33 | @Schema(description = "平台id")
34 | private final String serviceId;
35 |
36 | @Schema(description = "平台名称")
37 | private final String serviceName;
38 |
39 | @Schema(description = "注册码 token 有效时间, OffsetDateTime 类型")
40 | private final OffsetDateTime expiresAt;
41 | }
42 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/token/dto/ServiceEnum.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.token.dto;
18 |
19 | import java.util.Arrays;
20 |
21 | import lombok.AllArgsConstructor;
22 | import lombok.Getter;
23 |
24 | @AllArgsConstructor
25 | public enum ServiceEnum {
26 | REGISTRY("10001", "官方空间平台"),
27 | OPSTAGE("10002", "官方产品服务平台"),
28 | ;
29 |
30 | @Getter
31 | final String serviceId;
32 | final String serviceName;
33 |
34 | public static ServiceEnum fromValue(String value) {
35 | return Arrays.stream(values()).filter(serviceType -> serviceType.getServiceId().equals(value)).findFirst().orElseThrow();
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/token/dto/TokenInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.token.dto;
18 |
19 | import javax.validation.constraints.NotEmpty;
20 |
21 | import lombok.Data;
22 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
23 | import xyz.eulix.platform.common.support.validator.ValueOfEnum;
24 |
25 | import javax.validation.constraints.NotBlank;
26 | import java.util.List;
27 |
28 | /**
29 | * Used to define a data transfer object as REST request for holding related parameters
30 | * of registry information.
31 | */
32 | @Data
33 | public class TokenInfo {
34 | @NotBlank
35 | @Schema(description = "盒子的 UUID")
36 | private String boxUUID;
37 |
38 | @NotEmpty
39 | @Schema(description = "平台id:空间平台(serviceId=10001)、产品服务平台(serviceId=10002)")
40 | private List<@ValueOfEnum(enumClass = ServiceEnum.class, valueMethod = "getServiceId") String> serviceIds;
41 |
42 | @Schema(description = "签名,使用公钥验证盒子身份时必传")
43 | private String sign;
44 | }
45 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/token/dto/TokenResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.token.dto;
18 |
19 | import java.time.OffsetDateTime;
20 | import lombok.Data;
21 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
22 |
23 | /**
24 | * Used to define a data transfer object as REST response for holding related result
25 | * of activation result.
26 | */
27 | @Data(staticConstructor = "of")
28 | public class TokenResult {
29 | @Schema(description = "平台id")
30 | private final String serviceId;
31 |
32 | @Schema(description = "盒子在当前平台的注册码")
33 | private final String boxRegKey;
34 |
35 | @Schema(description = "注册码 token 有效时间, OffsetDateTime 类型")
36 | private final OffsetDateTime expiresAt;
37 | }
38 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/token/dto/TokenResults.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.token.dto;
18 |
19 | import lombok.Data;
20 | import org.eclipse.microprofile.openapi.annotations.media.Schema;
21 |
22 | import java.util.List;
23 |
24 | /**
25 | * Used to define a data transfer object as REST response for holding related result
26 | * of activation result.
27 | */
28 | @Data(staticConstructor = "of")
29 | public class TokenResults {
30 | @Schema(description = "盒子的 UUID")
31 | private final String boxUUID;
32 |
33 | @Schema(description = "盒子的注册码")
34 | private final List tokenResults;
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/token/dto/TokenVerifySignInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.token.dto;
18 |
19 | import java.util.List;
20 | import lombok.Data;
21 |
22 | @Data(staticConstructor = "of")
23 | public class TokenVerifySignInfo {
24 | private final String boxUUID;
25 | private final List serviceIds;
26 | }
27 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/token/entity/BoxTokenEntity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.token.entity;
18 |
19 | import java.time.OffsetDateTime;
20 | import javax.persistence.Column;
21 | import javax.persistence.Entity;
22 | import javax.persistence.Table;
23 | import javax.validation.constraints.NotBlank;
24 | import lombok.Getter;
25 | import lombok.Setter;
26 | import lombok.ToString;
27 | import org.hibernate.annotations.UpdateTimestamp;
28 | import xyz.eulix.platform.common.support.model.BaseEntity;
29 |
30 | @Getter
31 | @Setter
32 | @ToString(callSuper = true)
33 | @Entity
34 | @Table(name = "box_token")
35 | public class BoxTokenEntity extends BaseEntity {
36 | @NotBlank
37 | @Column(name = "box_uuid")
38 | private String boxUUID;
39 |
40 | @NotBlank
41 | @Column(name = "service_id")
42 | private String serviceId;
43 |
44 | @NotBlank
45 | @Column(name = "service_name")
46 | private String serviceName;
47 |
48 | @NotBlank
49 | @Column(name = "box_reg_key")
50 | private String boxRegKey;
51 |
52 | @Column(name = "expires_at")
53 | private OffsetDateTime expiresAt;
54 | }
55 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/java/xyz/eulix/platform/services/token/repository/BoxTokenEntityRepository.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.token.repository;
18 |
19 | import io.quarkus.hibernate.orm.panache.PanacheRepository;
20 |
21 | import java.util.Optional;
22 | import javax.enterprise.context.ApplicationScoped;
23 |
24 | import xyz.eulix.platform.services.token.dto.ServiceEnum;
25 | import xyz.eulix.platform.services.token.entity.BoxTokenEntity;
26 |
27 | @ApplicationScoped
28 |
29 | public class BoxTokenEntityRepository implements PanacheRepository {
30 | // 根据box_uuid查询资源
31 | private static final String FIND_BY_BOXUUID = "box_uuid=?1";
32 | // 根据box_reg_key查询资源
33 | private static final String FIND_BY_BOX_REG_KEY = "box_reg_key=?1";
34 | // 根据box_uuid、box_reg_key查询资源
35 | private static final String FIND_BY_BOXUUID_BOX_REG_KEY = "box_uuid=?1 AND box_reg_key=?2";
36 | private static final String FIND_BY_BOXUUID_SERVICE = "box_uuid=?1 AND service_id=?2";
37 |
38 | public Optional findByBoxUUID(String boxUUID) {
39 | return this.find(FIND_BY_BOXUUID, boxUUID).firstResultOptional();
40 | }
41 |
42 | public Optional findByBoxRegKey(String boxRegKey) {
43 | return this.find(FIND_BY_BOX_REG_KEY, boxRegKey).firstResultOptional();
44 | }
45 |
46 | public Optional findByBoxUUIDAndRegKey(String boxUUID, String boxRegKey) {
47 | return this.find(FIND_BY_BOXUUID_BOX_REG_KEY, boxUUID, boxRegKey).firstResultOptional();
48 | }
49 |
50 | public void deleteBoxTokenByBoxUUIdAndServiceId(String boxUUID, ServiceEnum serviceEnum) {
51 | this.delete(FIND_BY_BOXUUID_SERVICE, boxUUID, serviceEnum.getServiceId());
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/resources/profiles/community/db/migration/V1.1.0__Add_LockTable.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS `distributed_reentrant_locks` (
2 | `lock_key` VARCHAR(128) NOT NULL,
3 | `lock_value` VARCHAR(128) NOT NULL,
4 | `expires_at` timestamp(0) NOT NULL,
5 | `reentrant_count` INT NOT NULL DEFAULT 0,
6 | `created_at` DATETIME DEFAULT NULL,
7 | `updated_at` DATETIME DEFAULT NULL,
8 | `version` INT DEFAULT 0,
9 | PRIMARY KEY (`lock_key`)
10 | ) ENGINE = InnoDB DEFAULT CHARSET=utf8mb4;
11 |
12 | CREATE TABLE IF NOT EXISTS `distributed_reentrant_read_write_locks` (
13 | `lock_key` VARCHAR(128) NOT NULL,
14 | `expires_at` TIMESTAMP(0) NOT NULL,
15 | `mode` VARCHAR(20),
16 | `lock_holds_json` VARCHAR(2048),
17 | `created_at` DATETIME DEFAULT NULL,
18 | `updated_at` DATETIME DEFAULT NULL,
19 | `version` INT DEFAULT 0,
20 | PRIMARY KEY (`lock_key`)
21 | ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/resources/profiles/community/db/migration/V2.0.0__BoxRegistry_Update.sql:
--------------------------------------------------------------------------------
1 | -- Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
2 | --
3 | -- Licensed under the Apache License, Version 2.0 (the "License");
4 | -- you may not use this file except in compliance with the License.
5 | -- You may obtain a copy of the License at
6 | --
7 | -- http://www.apache.org/licenses/LICENSE-2.0
8 | --
9 | -- Unless required by applicable law or agreed to in writing, software
10 | -- distributed under the License is distributed on an "AS IS" BASIS,
11 | -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | -- See the License for the specific language governing permissions and
13 | -- limitations under the License.
14 |
15 | ALTER TABLE box_registries ADD network_secret_salt VARCHAR(128) DEFAULT NULL COMMENT 'network client访问密钥盐值';
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/resources/profiles/community/template/boxTemplate.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/eulixplatform-registry/src/main/resources/profiles/community/template/boxTemplate.xlsx
--------------------------------------------------------------------------------
/eulixplatform-registry/src/main/resources/profiles/community/template/boxTemplateV2.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/eulixplatform-registry/src/main/resources/profiles/community/template/boxTemplateV2.xlsx
--------------------------------------------------------------------------------
/eulixplatform-registry/src/test/java/xyz/eulix/platform/services/StatusResourceTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services;
18 |
19 | import io.quarkus.test.junit.QuarkusTest;
20 | import org.junit.jupiter.api.Test;
21 | import xyz.eulix.platform.services.config.ApplicationProperties;
22 |
23 | import javax.inject.Inject;
24 |
25 | import java.util.UUID;
26 |
27 | import static io.restassured.RestAssured.given;
28 | import static org.hamcrest.CoreMatchers.is;
29 |
30 | @QuarkusTest
31 | class StatusResourceTest {
32 |
33 | @Inject
34 | ApplicationProperties properties;
35 |
36 | @Test
37 | void testStatusEndpoint() {
38 | final var requestId = UUID.randomUUID().toString();
39 |
40 | given()
41 | .header("Request-Id", requestId)
42 | .when()
43 | .get("/v2/platform/status")
44 | .then()
45 | .statusCode(200)
46 | .body("status", is("ok"))
47 | .body("version", is(properties.getVersion()));
48 | }
49 | }
--------------------------------------------------------------------------------
/eulixplatform-registry/src/test/java/xyz/eulix/platform/services/auth/PollPkeyInvalidRsp.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package xyz.eulix.platform.services.auth;
18 |
19 | import lombok.Data;
20 |
21 | @Data(staticConstructor = "of")
22 | public class PollPkeyInvalidRsp {
23 | private String requestId;
24 | private String code;
25 | private String message;
26 | }
--------------------------------------------------------------------------------
/eulixplatform-registry/src/test/java/xyz/eulix/platform/services/lock/DistributedLockTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | /*
18 | package xyz.eulix.platform.services.lock;
19 |
20 | import io.quarkus.test.junit.QuarkusTest;
21 | import org.jboss.logging.Logger;
22 | import org.junit.jupiter.api.Assertions;
23 | import org.junit.jupiter.api.Test;
24 |
25 | import javax.inject.Inject;
26 |
27 | @QuarkusTest
28 | public class DistributedLockTest {
29 | private static final Logger LOG = Logger.getLogger("app.log");
30 |
31 | @Inject
32 | DistributedLockFactory lockFactory;
33 |
34 | @Test
35 | void testLock() {
36 | String keyName = "ditributedLockKey1";
37 | DistributedLock lock = lockFactory.newLock(keyName);
38 | // 加锁
39 | Boolean isLocked = lock.tryLock();
40 | if (isLocked) {
41 | LOG.infov("acquire lock success, keyName:{0}", keyName);
42 | try {
43 | // 这里写需要处理业务的业务代码
44 | LOG.info("do something.");
45 | } finally {
46 | // 释放锁
47 | lock.unlock();
48 | LOG.infov("release lock success, keyName:{0}", keyName);
49 | }
50 | } else {
51 | LOG.infov("acquire lock fail, keyName:{0}", keyName);
52 | }
53 | Assertions.assertTrue(isLocked);
54 | }
55 | }
56 | */
--------------------------------------------------------------------------------
/licenses/license-antlr-antlr.txt:
--------------------------------------------------------------------------------
1 | License: {Name: BSD License, URL: http://www.antlr.org/license.html, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-com.alibaba-easyexcel.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Apache 2, URL: http://www.apache.org/licenses/LICENSE-2.0.txt, Distribution: repo, Comments: A business-friendly OSS license, }
--------------------------------------------------------------------------------
/licenses/license-com.cronutils-cron-utils.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.html
--------------------------------------------------------------------------------
/licenses/license-com.fasterxml-classmate.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Apache License, Version 2.0, URL: https://www.apache.org/licenses/LICENSE-2.0.txt, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-com.fasterxml.jackson.dataformat-jackson-dataformat-yaml.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-com.fasterxml.jackson.dataformat-jackson-dataformat-yaml.txt
--------------------------------------------------------------------------------
/licenses/license-com.fasterxml.jackson.datatype-jackson-datatype-jdk8.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.txt
--------------------------------------------------------------------------------
/licenses/license-com.fasterxml.jackson.datatype-jackson-datatype-jsr310.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-com.fasterxml.jackson.datatype-jackson-datatype-jsr310.txt
--------------------------------------------------------------------------------
/licenses/license-com.fasterxml.jackson.jaxrs-jackson-jaxrs-base.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-com.fasterxml.jackson.jaxrs-jackson-jaxrs-base.txt
--------------------------------------------------------------------------------
/licenses/license-com.fasterxml.jackson.jaxrs-jackson-jaxrs-json-provider.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-com.fasterxml.jackson.jaxrs-jackson-jaxrs-json-provider.txt
--------------------------------------------------------------------------------
/licenses/license-com.fasterxml.jackson.module-jackson-module-jaxb-annotations.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-com.fasterxml.jackson.module-jackson-module-jaxb-annotations.txt
--------------------------------------------------------------------------------
/licenses/license-com.fasterxml.jackson.module-jackson-module-parameter-names.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.txt
--------------------------------------------------------------------------------
/licenses/license-com.github.java-json-tools-btf.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Lesser General Public License, version 3 or greater, URL: http://www.gnu.org/licenses/lgpl.html, Distribution: repo, Comments: , }
2 | License: {Name: Apache Software License, version 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-com.github.java-json-tools-jackson-coreutils.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Lesser General Public License, version 3 or greater, URL: http://www.gnu.org/licenses/lgpl.html, Distribution: repo, Comments: , }
2 | License: {Name: Apache Software License, version 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-com.github.java-json-tools-json-patch.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Lesser General Public License, version 3 or greater, URL: http://www.gnu.org/licenses/lgpl.html, Distribution: repo, Comments: , }
2 | License: {Name: Apache Software License, version 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-com.github.java-json-tools-msg-simple.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Lesser General Public License, version 3 or greater, URL: http://www.gnu.org/licenses/lgpl.html, Distribution: repo, Comments: , }
2 | License: {Name: Apache Software License, version 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-com.github.virtuald-curvesapi.txt:
--------------------------------------------------------------------------------
1 | License: {Name: BSD License, URL: http://opensource.org/licenses/BSD-3-Clause, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-com.google.code.findbugs-jsr305.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.txt
--------------------------------------------------------------------------------
/licenses/license-com.google.errorprone-error-prone-annotations.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Apache 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0.txt, Distribution: , Comments: , }
--------------------------------------------------------------------------------
/licenses/license-com.google.guava-failureaccess.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.txt
--------------------------------------------------------------------------------
/licenses/license-com.google.guava-guava.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.txt
--------------------------------------------------------------------------------
/licenses/license-com.google.guava-listenablefuture.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-com.google.guava-listenablefuture.txt
--------------------------------------------------------------------------------
/licenses/license-com.google.j2objc-j2objc-annotations.txt:
--------------------------------------------------------------------------------
1 | License: {Name: The Apache Software License, Version 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0.txt, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-com.h2database-h2.txt:
--------------------------------------------------------------------------------
1 | http://www.h2database.com/html/license.html
--------------------------------------------------------------------------------
/licenses/license-com.ibm.async-asyncutil.txt:
--------------------------------------------------------------------------------
1 | License: {Name: The Apache Software License, Version 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0.txt, Distribution: , Comments: , }
--------------------------------------------------------------------------------
/licenses/license-com.squareup.okhttp3-okhttp.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-com.squareup.okhttp3-okhttp.txt
--------------------------------------------------------------------------------
/licenses/license-com.squareup.okio-okio.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-com.squareup.okio-okio.txt
--------------------------------------------------------------------------------
/licenses/license-com.sun.activation-jakarta.activation.txt:
--------------------------------------------------------------------------------
1 |
2 | Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions
6 | are met:
7 |
8 | - Redistributions of source code must retain the above copyright
9 | notice, this list of conditions and the following disclaimer.
10 |
11 | - Redistributions in binary form must reproduce the above copyright
12 | notice, this list of conditions and the following disclaimer in the
13 | documentation and/or other materials provided with the distribution.
14 |
15 | - Neither the name of the Eclipse Foundation, Inc. nor the names of its
16 | contributors may be used to endorse or promote products derived
17 | from this software without specific prior written permission.
18 |
19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20 | IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/licenses/license-com.sun.istack-istack-commons-runtime.txt:
--------------------------------------------------------------------------------
1 |
2 | Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions
6 | are met:
7 |
8 | - Redistributions of source code must retain the above copyright
9 | notice, this list of conditions and the following disclaimer.
10 |
11 | - Redistributions in binary form must reproduce the above copyright
12 | notice, this list of conditions and the following disclaimer in the
13 | documentation and/or other materials provided with the distribution.
14 |
15 | - Neither the name of the Eclipse Foundation, Inc. nor the names of its
16 | contributors may be used to endorse or promote products derived
17 | from this software without specific prior written permission.
18 |
19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20 | IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/licenses/license-com.zaxxer-SparseBitSet.txt:
--------------------------------------------------------------------------------
1 | License: {Name: The Apache Software License, Version 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0.txt, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-io.agroal-agroal-api.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.html
--------------------------------------------------------------------------------
/licenses/license-io.agroal-agroal-narayana.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.html
--------------------------------------------------------------------------------
/licenses/license-io.agroal-agroal-pool.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.html
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-buffer.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-codec-dns.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-codec-haproxy.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-codec-http.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-codec-http2.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-codec-socks.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-codec.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-common.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-handler-proxy.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-handler.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-resolver-dns.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-resolver.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.netty-netty-transport.txt:
--------------------------------------------------------------------------------
1 | https://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-agroal.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-agroal.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-apache-httpclient.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-apache-httpclient.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-arc.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-arc.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-bootstrap-runner.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-bootstrap-runner.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-caffeine.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-caffeine.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-config-yaml.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-config-yaml.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-core.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-core.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-credentials.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-credentials.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-datasource-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-datasource-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-datasource.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-datasource.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-development-mode-spi.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-development-mode-spi.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-flyway.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-flyway.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-hibernate-orm-panache-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-hibernate-orm-panache-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-hibernate-orm-panache.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-hibernate-orm-panache.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-hibernate-orm.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-hibernate-orm.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-hibernate-validator.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-hibernate-validator.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-ide-launcher.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-ide-launcher.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-jackson.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-jackson.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-jaxb.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-jaxb.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-jaxp.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-jaxp.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-jdbc-h2.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-jdbc-h2.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-jdbc-mysql.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-jdbc-mysql.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-mutiny.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-mutiny.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-narayana-jta.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-narayana-jta.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-netty.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-netty.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-panache-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-panache-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-panache-hibernate-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-panache-hibernate-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-redis-client.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-redis-client.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-rest-client-config.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-rest-client-config.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-rest-client-jackson.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-rest-client-jackson.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-rest-client.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-rest-client.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-resteasy-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-resteasy-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-resteasy-jackson.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-resteasy-jackson.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-resteasy-jaxb.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-resteasy-jaxb.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-resteasy-server-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-resteasy-server-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-resteasy.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-resteasy.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-scheduler.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-scheduler.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-security-runtime-spi.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-security-runtime-spi.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-smallrye-context-propagation.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-smallrye-context-propagation.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-smallrye-openapi.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-smallrye-openapi.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-swagger-ui.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-swagger-ui.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-vertx-http-dev-console-runtime-spi.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-vertx-http-dev-console-runtime-spi.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-vertx-http.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-vertx-http.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus-quarkus-vertx.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus-quarkus-vertx.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus.arc-arc.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.quarkus.arc-arc.txt
--------------------------------------------------------------------------------
/licenses/license-io.quarkus.security-quarkus-security.txt:
--------------------------------------------------------------------------------
1 | License: {Name: The Apache Software License, Version 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0.txt, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-io.smallrye-smallrye-context-propagation-api.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye-smallrye-context-propagation-api.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye-smallrye-context-propagation-jta.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye-smallrye-context-propagation-jta.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye-smallrye-context-propagation-storage.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye-smallrye-context-propagation-storage.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye-smallrye-context-propagation.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye-smallrye-context-propagation.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye-smallrye-fault-tolerance-vertx.txt:
--------------------------------------------------------------------------------
1 |
2 | ~ Copyright 2021 Red Hat, Inc.
3 | ~
4 | ~ Licensed under the Apache License, Version 2.0 (the "License");
5 | ~ you may not use this file except in compliance with the License.
6 | ~ You may obtain a copy of the License at
7 | ~
8 | ~ http://www.apache.org/licenses/LICENSE-2.0
9 | ~
10 | ~ Unless required by applicable law or agreed to in writing, software
11 | ~ distributed under the License is distributed on an "AS IS" BASIS,
12 | ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | ~ See the License for the specific language governing permissions and
14 | ~ limitations under the License.
15 |
--------------------------------------------------------------------------------
/licenses/license-io.smallrye-smallrye-open-api-core.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye-smallrye-open-api-core.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.common-smallrye-common-annotation.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.common-smallrye-common-annotation.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.common-smallrye-common-classloader.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.common-smallrye-common-classloader.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.common-smallrye-common-constraint.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.common-smallrye-common-constraint.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.common-smallrye-common-expression.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.common-smallrye-common-expression.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.common-smallrye-common-function.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.common-smallrye-common-function.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.common-smallrye-common-io.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.common-smallrye-common-io.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.config-smallrye-config-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.config-smallrye-config-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.config-smallrye-config-core.txt:
--------------------------------------------------------------------------------
1 |
2 | ~ Copyright 2017 Red Hat, Inc.
3 | ~
4 | ~ Licensed under the Apache License, Version 2.0 (the "License");
5 | ~ you may not use this file except in compliance with the License.
6 | ~ You may obtain a copy of the License at
7 | ~
8 | ~ http://www.apache.org/licenses/LICENSE-2.0
9 | ~
10 | ~ Unless required by applicable law or agreed to in writing, software
11 | ~ distributed under the License is distributed on an "AS IS" BASIS,
12 | ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | ~ See the License for the specific language governing permissions and
14 | ~ limitations under the License.
15 |
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.config-smallrye-config-source-yaml.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.config-smallrye-config-source-yaml.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.config-smallrye-config-validator.txt:
--------------------------------------------------------------------------------
1 |
2 | ~ Copyright 2021 Red Hat, Inc.
3 | ~
4 | ~ Licensed under the Apache License, Version 2.0 (the "License");
5 | ~ you may not use this file except in compliance with the License.
6 | ~ You may obtain a copy of the License at
7 | ~
8 | ~ http://www.apache.org/licenses/LICENSE-2.0
9 | ~
10 | ~ Unless required by applicable law or agreed to in writing, software
11 | ~ distributed under the License is distributed on an "AS IS" BASIS,
12 | ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | ~ See the License for the specific language governing permissions and
14 | ~ limitations under the License.
15 |
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.config-smallrye-config.txt:
--------------------------------------------------------------------------------
1 |
2 | ~ Copyright 2020 Red Hat, Inc.
3 | ~
4 | ~ Licensed under the Apache License, Version 2.0 (the "License");
5 | ~ you may not use this file except in compliance with the License.
6 | ~ You may obtain a copy of the License at
7 | ~
8 | ~ http://www.apache.org/licenses/LICENSE-2.0
9 | ~
10 | ~ Unless required by applicable law or agreed to in writing, software
11 | ~ distributed under the License is distributed on an "AS IS" BASIS,
12 | ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | ~ See the License for the specific language governing permissions and
14 | ~ limitations under the License.
15 |
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-mutiny-smallrye-context-propagation.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-mutiny-smallrye-context-propagation.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-mutiny.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-mutiny.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-auth-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-auth-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-bridge-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-bridge-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-core.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-core.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-redis-client.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-redis-client.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-runtime.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-runtime.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-web-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-web-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-web.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-smallrye-mutiny-vertx-web.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-smallrye-reactive-converter-api.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-smallrye-reactive-converter-api.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-smallrye-reactive-converter-mutiny.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-smallrye-reactive-converter-mutiny.txt
--------------------------------------------------------------------------------
/licenses/license-io.smallrye.reactive-vertx-mutiny-generator.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.smallrye.reactive-vertx-mutiny-generator.txt
--------------------------------------------------------------------------------
/licenses/license-io.vertx-vertx-auth-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.vertx-vertx-auth-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.vertx-vertx-bridge-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.vertx-vertx-bridge-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.vertx-vertx-codegen.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.vertx-vertx-codegen.txt
--------------------------------------------------------------------------------
/licenses/license-io.vertx-vertx-core.txt:
--------------------------------------------------------------------------------
1 | License: {Name: The Apache Software License, Version 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0.txt, Distribution: repo, Comments: , }
2 | License: {Name: Eclipse Public License - v 2.0, URL: http://www.eclipse.org/legal/epl-v20.html, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-io.vertx-vertx-redis-client.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.vertx-vertx-redis-client.txt
--------------------------------------------------------------------------------
/licenses/license-io.vertx-vertx-web-common.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-io.vertx-vertx-web-common.txt
--------------------------------------------------------------------------------
/licenses/license-io.vertx-vertx-web.txt:
--------------------------------------------------------------------------------
1 | License: {Name: The Apache Software License, Version 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0.txt, Distribution: repo, Comments: , }
2 | License: {Name: Eclipse Public License - v 2.0, URL: http://www.eclipse.org/legal/epl-v20.html, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-jakarta.activation-jakarta.activation-api.txt:
--------------------------------------------------------------------------------
1 |
2 | Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions
6 | are met:
7 |
8 | - Redistributions of source code must retain the above copyright
9 | notice, this list of conditions and the following disclaimer.
10 |
11 | - Redistributions in binary form must reproduce the above copyright
12 | notice, this list of conditions and the following disclaimer in the
13 | documentation and/or other materials provided with the distribution.
14 |
15 | - Neither the name of the Eclipse Foundation, Inc. nor the names of its
16 | contributors may be used to endorse or promote products derived
17 | from this software without specific prior written permission.
18 |
19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20 | IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/licenses/license-jakarta.enterprise-jakarta.enterprise.cdi-api.txt:
--------------------------------------------------------------------------------
1 | https://repository.jboss.org/licenses/apache-2.0.txt
--------------------------------------------------------------------------------
/licenses/license-jakarta.inject-jakarta.inject-api.txt:
--------------------------------------------------------------------------------
1 | License: {Name: The Apache Software License, Version 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0.txt, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-jakarta.persistence-jakarta.persistence-api.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-2.0, http://www.eclipse.org/org/documents/edl-v10.php
--------------------------------------------------------------------------------
/licenses/license-jakarta.transaction-jakarta.transaction-api.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-2.0, https://www.gnu.org/software/classpath/license.html
--------------------------------------------------------------------------------
/licenses/license-jakarta.validation-jakarta.validation-api.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.txt
--------------------------------------------------------------------------------
/licenses/license-net.bytebuddy-byte-buddy.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-net.bytebuddy-byte-buddy.txt
--------------------------------------------------------------------------------
/licenses/license-org.checkerframework-checker-qual.txt:
--------------------------------------------------------------------------------
1 | License: {Name: The MIT License, URL: http://opensource.org/licenses/MIT, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-org.eclipse.microprofile.openapi-microprofile-openapi-api.txt:
--------------------------------------------------------------------------------
1 |
2 | Licensed under the Apache License, Version 2.0 (the
3 | "License"); you may not use this file except in compliance
4 | with the License. You may obtain a copy of the License at
5 |
6 | http://www.apache.org/licenses/LICENSE-2.0
7 |
8 | Unless required by applicable law or agreed to in writing,
9 | software distributed under the License is distributed on an
10 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11 | KIND, either express or implied. See the License for the
12 | specific language governing permissions and limitations
13 | under the License.
14 |
--------------------------------------------------------------------------------
/licenses/license-org.flywaydb-flyway-core.txt:
--------------------------------------------------------------------------------
1 |
2 |
3 | Copyright (C) Red Gate Software Ltd 2010-2021
4 |
5 | Licensed under the Apache License, Version 2.0 (the "License");
6 | you may not use this file except in compliance with the License.
7 | You may obtain a copy of the License at
8 |
9 | http://www.apache.org/licenses/LICENSE-2.0
10 |
11 | Unless required by applicable law or agreed to in writing, software
12 | distributed under the License is distributed on an "AS IS" BASIS,
13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | See the License for the specific language governing permissions and
15 | limitations under the License.
16 |
17 |
--------------------------------------------------------------------------------
/licenses/license-org.glassfish.jaxb-jaxb-runtime.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted provided that the following conditions
5 | are met:
6 |
7 | - Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 |
10 | - Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 |
14 | - Neither the name of the Eclipse Foundation, Inc. nor the names of its
15 | contributors may be used to endorse or promote products derived
16 | from this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
19 | IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
20 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
22 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/licenses/license-org.glassfish.jaxb-txw2.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted provided that the following conditions
5 | are met:
6 |
7 | - Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 |
10 | - Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 |
14 | - Neither the name of the Eclipse Foundation, Inc. nor the names of its
15 | contributors may be used to endorse or promote products derived
16 | from this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
19 | IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
20 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
22 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/licenses/license-org.graalvm.sdk-graal-sdk.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Universal Permissive License, Version 1.0, URL: http://opensource.org/licenses/UPL, Distribution: , Comments: , }
--------------------------------------------------------------------------------
/licenses/license-org.hibernate-hibernate-core.txt:
--------------------------------------------------------------------------------
1 | License: {Name: GNU Library General Public License v2.1 or later, URL: https://www.opensource.org/licenses/LGPL-2.1, Distribution: repo, Comments: See discussion at https://hibernate.org/community/license/ for more details., }
--------------------------------------------------------------------------------
/licenses/license-org.hibernate-hibernate-graalvm.txt:
--------------------------------------------------------------------------------
1 | License: {Name: GNU Library General Public License v2.1 or later, URL: https://www.opensource.org/licenses/LGPL-2.1, Distribution: repo, Comments: See discussion at https://hibernate.org/community/license/ for more details., }
--------------------------------------------------------------------------------
/licenses/license-org.hibernate-quarkus-local-cache.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Apache License 2.0, URL: http://www.apache.org/licenses/LICENSE-2.0, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-org.hibernate.common-hibernate-commons-annotations.txt:
--------------------------------------------------------------------------------
1 | License: {Name: GNU Library General Public License v2.1 or later, URL: http://www.opensource.org/licenses/LGPL-2.1, Distribution: repo, Comments: See discussion at http://hibernate.org/community/license/ for more details., }
--------------------------------------------------------------------------------
/licenses/license-org.hibernate.validator-hibernate-validator.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss-jandex.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss-jboss-transaction-spi.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss-jboss-transaction-spi.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.logging-commons-logging-jboss-logging.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Apache License 2.0, URL: http://repository.jboss.org/licenses/apache-2.0.txt, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-org.jboss.logmanager-jboss-logmanager-embedded.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Apache License 2.0, URL: http://repository.jboss.org/licenses/apache-2.0.txt, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-org.jboss.narayana.jta-narayana-jta.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.narayana.jta-narayana-jta.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.narayana.jts-narayana-jts-integration.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.narayana.jts-narayana-jts-integration.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.resteasy-resteasy-cdi.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.resteasy-resteasy-cdi.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.resteasy-resteasy-client-api.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.resteasy-resteasy-client-api.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.resteasy-resteasy-client-microprofile-base.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.resteasy-resteasy-client-microprofile-base.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.resteasy-resteasy-client-microprofile.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.resteasy-resteasy-client-microprofile.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.resteasy-resteasy-client.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.resteasy-resteasy-client.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.resteasy-resteasy-core-spi.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.resteasy-resteasy-core-spi.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.resteasy-resteasy-core.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.resteasy-resteasy-core.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.resteasy-resteasy-jackson2-provider.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.resteasy-resteasy-jackson2-provider.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.resteasy-resteasy-jaxb-provider.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.resteasy-resteasy-jaxb-provider.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.resteasy-resteasy-multipart-provider.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.jboss.resteasy-resteasy-multipart-provider.txt
--------------------------------------------------------------------------------
/licenses/license-org.jboss.slf4j-slf4j-jboss-logmanager.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Apache License 2.0, URL: http://repository.jboss.org/licenses/apache-2.0.txt, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-org.jboss.spec.javax.xml.bind-jboss-jaxb-api-2.3-spec.txt:
--------------------------------------------------------------------------------
1 |
2 | Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions
6 | are met:
7 |
8 | - Redistributions of source code must retain the above copyright
9 | notice, this list of conditions and the following disclaimer.
10 |
11 | - Redistributions in binary form must reproduce the above copyright
12 | notice, this list of conditions and the following disclaimer in the
13 | documentation and/or other materials provided with the distribution.
14 |
15 | - Neither the name of the Eclipse Foundation, Inc. nor the names of its
16 | contributors may be used to endorse or promote products derived
17 | from this software without specific prior written permission.
18 |
19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20 | IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/licenses/license-org.locationtech.jts-jts-core.txt:
--------------------------------------------------------------------------------
1 | https://github.com/locationtech/jts/blob/master/LICENSE_EPLv1.txt, https://github.com/locationtech/jts/blob/master/LICENSE_EDLv1.txt
--------------------------------------------------------------------------------
/licenses/license-org.ow2.asm-asm.txt:
--------------------------------------------------------------------------------
1 | https://asm.ow2.io/LICENSE.txt
--------------------------------------------------------------------------------
/licenses/license-org.reactivestreams-reactive-streams.txt:
--------------------------------------------------------------------------------
1 | License: {Name: CC0, URL: http://creativecommons.org/publicdomain/zero/1.0/, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-org.slf4j-slf4j-api.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ao-space/platform-base/1c516027b44048ef2c34458409d2acdc6c037c7a/licenses/license-org.slf4j-slf4j-api.txt
--------------------------------------------------------------------------------
/licenses/license-org.wildfly.common-wildfly-common.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Apache License 2.0, URL: http://repository.jboss.org/licenses/apache-2.0.txt, Distribution: repo, Comments: , }
--------------------------------------------------------------------------------
/licenses/license-org.yaml-snakeyaml.txt:
--------------------------------------------------------------------------------
1 | http://www.apache.org/licenses/LICENSE-2.0.txt
--------------------------------------------------------------------------------
/licenses/license-xyz.eulix.platform.services-eulixplatform-common.txt:
--------------------------------------------------------------------------------
1 |
2 | ~ Copyright (c) 2022 Institute of Software Chinese Academy of Sciences (ISCAS)
3 | ~
4 | ~ Licensed under the Apache License, Version 2.0 (the "License");
5 | ~ you may not use this file except in compliance with the License.
6 | ~ You may obtain a copy of the License at
7 | ~
8 | ~ http://www.apache.org/licenses/LICENSE-2.0
9 | ~
10 | ~ Unless required by applicable law or agreed to in writing, software
11 | ~ distributed under the License is distributed on an "AS IS" BASIS,
12 | ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | ~ See the License for the specific language governing permissions and
14 | ~ limitations under the License.
15 |
--------------------------------------------------------------------------------