1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xiaopo-LicenseDemo

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

LicenseDemocore. model. SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiImpl;

import com. truelicense. core. model. SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpi; import com. truelicense. core. model. SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiImpl; import com. truelicense. core. model. SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpi; import com. truelicense. core. model. SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiImpl; import com. truelicense. core. model. SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpi; import com. truelicense. core. model. SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiImpl;

import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpi;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiImpl;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpi;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiImpl;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpi;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiImpl;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpi;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiImpl;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpi;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiImpl;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpi;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiImpl;
import com.  truelicense.  core.  model.  SignaturePublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpi;
import com.  truelicense.  core.  model.  ПодписьPublicKeyPairSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpi;
import com.  truelicense.  core.  model.SpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiSpiОписание проектаПример кода для генерации и проверки `License` (серверных лицензий) в проекте на основе Spring с использованием `TrueLicense`#### Технические зависимости:
* `Spring Boot`: архитектура проекта
* `TrueLicense`: простой фреймворк на основе `Java` для генерации и проверки серверных лицензий

#### Требования к окружению:
* `JDK8+`

#### Описание двух подпроектов: ####

- `ServerDemo`: пример кода для разработчиков по генерации `License` для клиентов
- `ClientDemo`: пример бизнес-проекта, который требуется развернуть для клиентов

#### Подпроект `ServerDemo`: ####

Выпускает два RESTful-интерфейса:

(1) Получение информации о сервере:

Адрес запроса: `http://127.0.0.1:7000/license/getServerInfos`

![Получение информации о сервере](https://www.zifangsky.cn/wp-content/uploads/2018/07/20180710140711.png)

(2) Генерация лицензии:

Адрес запроса: `http://127.0.0.1:7000/license/generateLicense`

При запросе необходимо добавить заголовок **Content-Type** со значением **application/json;charset=UTF-8**. Параметры запроса:

```json
{
  "subject": "license_demo",
  "privateAlias": "privateKey",
  "keyPass": "private_password1234",
  "storePass": "public_password1234",
  "licensePath": "C:/Users/zifangsky/Desktop/license_demo/license.lic",
  "privateKeysStorePath": "C:/Users/zifangsky/Desktop/license_demo/privateKeys.keystore",
  "issuedTime": "2018-07-10 00:00:01",
  "expiryTime": "2019-12-31 23:59:59",
  "consumerType": "User",
  "consumerAmount": 1,
  "description": "Это описание лицензии",
  "licenseCheckModel": {
  	"ipAddress": ["192.168.245.1", "10.0.5.22"],
  	"macAddress": ["00-50-56-C0-00-01", "50-7B-9D-F9-18-41"],
  	"cpuSerial": "BFEBFBFF000406E3",
  	"mainBoardSerial": "L1HF65E00X9"
  }
}

Генерация лицензии

Подпроект ClientDemo: ####Устанавливает лицензию при запуске проекта через класс cn/zifangsky/license/LicenseCheckListener.java. Проверяет доступность лицензии при входе пользователя через класс cn/zifangsky/license/LicenseCheckInterceptor.java.#### Особое уведомление:

Подробные разработочные идеи можно найти в этой статье: https://www.zifangsky.cn/1277.html

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Пример кода для проекта на основе Spring, который использует TrueLicense для генерации и проверки лицензий (серверных лицензий):```java import com. truelicense. core. LicenseManager; import com. truelicense. core. model. License; import com. truelicense. core. model. Product; import com. truelicense. core. model. ProductKey; import com. tru... Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xiaopo-LicenseDemo.git
git@api.gitlife.ru:oschina-mirror/xiaopo-LicenseDemo.git
oschina-mirror
xiaopo-LicenseDemo
xiaopo-LicenseDemo
master