License (или как понять что оно из себя представляет)

xLaPax

Путник
Пользователь
Сообщения
215
Розыгрыши
0
Репутация
624
Реакции
98
Баллы
0
Разбирая сборку наткнулся сразу же на Лицензию.
Возник вопрос в самом коде:
Код:
package com.server;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Properties;
public abstract class License
{
    static boolean isLicension = false;

    static String LicenseID;
    static String LicenseIDfromSite;
    public static boolean isFree = false;

    public static final String  LICENSE_FILE = "./config/License.ini";

    public static void freeLicense()
    {
        isFree = true;
    }

    public static boolean isLicensed()
    {
        return isLicension;
    }
    public static void setLicense(Boolean b)
    {
        isLicension = b;
    }
    public static void checkLicense()
    {
        loadConfig();
        connectSiteLicense();
        if(LicenseID.equalsIgnoreCase(LicenseIDfromSite))
        {
            setLicense(true);
        }
        else
        {
            setLicense(false);
            System.out.println("You are not custmoer.");
            System.exit(0);   
        }
    }
    public static void loadConfig()
    {
        try
        {
            Properties serverSettings    = new Properties();
            InputStream is              = new FileInputStream(new File(LICENSE_FILE));
            serverSettings.load(is);
            is.close();
           
            LicenseID = serverSettings.getProperty("LicenseID", "null");
      }
      catch (Exception e)
      {
          e.printStackTrace();
          throw new Error("License file load filed...");
      }
    }
    public static void connectSiteLicense()
    {
        try
        {
            URL LicenseSite = new URL(" http://localhost/"+Config.GAMESERVER_HOSTNAME+".lic ");
            System.out.println("Trying to license your server...");
            BufferedReader br = new BufferedReader(new InputStreamReader(LicenseSite.openStream()));
            String line = br.readLine();
            LicenseIDfromSite = line;
            br.close();
        }
        catch(MalformedURLException me)
        {
            System.err.println("License site connection failed");
            System.err.println(me);
            System.exit(0);
        }
        catch(IOException ioe)
        {
            System.err.println("Input error: " + ioe);
        }
    }
}
А именно:
Код:
{
            URL LicenseSite = new URL(" http://localhost/"+Config.GAMESERVER_HOSTNAME+".lic ");
            System.out.println("Trying to license your server...");
            BufferedReader br = new BufferedReader(new InputStreamReader(LicenseSite.openStream()));

            String line = br.readLine();
            LicenseIDfromSite = line;
            br.close();
        }
Я не профи а только начинающий в этом деле и не блестаю даже базовыми знаниями.
Вопрос: Как я понял идет запрос на файл license.ini в конфиге и он проходит по localhost'y в поиске .lic? Где же должен быть на своем месте .lic?
Прошу прощения если я не правильно сформулировал вопрос.
 
Последнее редактирование:
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
localhost+config+license.lic
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
содержимое файла License.ini скиньте.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
по сути это лицензия для сборки да бы не запускалась с левого хоста. тобиш привязка)
 
Я знаю что это привязка но в том и прикол что она на null а то есть без какого либо ключа но он не хочет реагировать в связи с непроходимостью .lic
И за этого сервер не продолжает стартовать, думаю вырезать хотя хотел оставить или переписать по другому на конект по ip на псевдо базу где он смеряет ключ .
Хочу понять механизм и переделать чуть.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
ну вот там же всё понятно)
что да и куда идет)
 
ну вот там же всё понятно)
что да и куда идет)
Веб путь куда он обращается я же правильно понял?
Код:
URL LicenseSite = new URL
То есть сам .lic должен на веб сервере и в нем ip клиента и код ключа. Может не в ту сторону мыслю я кинул?
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Это часом не лицензия с привата?
 
Ничего Вам не понятно, нужно смотреть дочерний класс, читаем код и понимаем что тут читать нечего
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Да в ту сторону)
привязка весит на веб части)
 
Как говорится "Тупняк" спал. Уже понял как данный механизм действует, буду немного модернизировать, без книги не обойдется
Большое всем спасибо за помощь!
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
есть ещё такой вариант
Код:
public class Loader extends ClassLoader {

    private static Loader _instance = null;
    private static final Logger _log = LoggerFactory.getLogger(GameServer.class);
    String load;

    public static Loader getInstance() {
        if (_instance == null) {
            _instance = new Loader();
        }
        return _instance;
    }

    private Loader() {
        load = getTo("aHR0cDovL3d3dy5tbW8tZGV2ZWxvcC5ydS8=");
        BufferedReader reader = null;
        try {
            URL url = new URL(load + "?" + Base64.encodeBytes(Config.OWNER_NAME.getBytes()));
            reader = new BufferedReader(new InputStreamReader(url.openStream()));
        } catch (IOException e) {
            reader = null;
        }
        if (reader == null) {
            _log.info("License : Unable to connect license server!");
            Shutdown.getInstance().schedule(60, Shutdown.RESTART);
            return;
        }
        try {
            String line;
            while ((line = reader.readLine()) != null) {
                if (line.startsWith("Key=")) {
                    Config.LICENSE_KEY = Integer.parseInt(line.substring(4).trim(), 16) << 8;
                    break;
                }
            }
            if (Config.LICENSE_KEY == -1) {
                throw new Exception();
            }
        } catch (Exception e) {
            _log.info("Not correct License");
            Shutdown.getInstance().schedule(60, Shutdown.RESTART);
        }
    }
Код:
 load = getTo("aHR0cDovL3d3dy5tbW8tZGV2ZWxvcC5ydS8=");
это и есть ссылка закодирована)
также на сам сайт мы грузим файлы лицухи и заливаем бд конектим это всё дело, ставим имя клиента ид ип и ключ) и ко всё этому делаем ещё по дате да бы к примеру клиенты у нас с 01.09.2015 по 02.10.2015 02.10 клиентка у него офнится)
это просто пример)
 
Спасибо, позже рассмотрю это
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.