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

  • Автор темы Автор темы xLaPax
  • Дата начала Дата начала

xLaPax

Выдающийся
Местный
За веру и верность форуму
Сообщения
218
Розыгрыши
0
Репутация
624
Реакции
99
Баллы
1 323
Разбирая сборку наткнулся сразу же на Лицензию.
Возник вопрос в самом коде:
Код:
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
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Разбирая сборку наткнулся сразу же на Лицензию.
Возник вопрос в самом коде:
Код:
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?
Прошу прощения если я не правильно сформулировал вопрос.
содержимое файла License.ini скиньте.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
по сути это лицензия для сборки да бы не запускалась с левого хоста. тобиш привязка)
 
по сути это лицензия для сборки да бы не запускалась с левого хоста. тобиш привязка)
Я знаю что это привязка но в том и прикол что она на null а то есть без какого либо ключа но он не хочет реагировать в связи с непроходимостью .lic
И за этого сервер не продолжает стартовать, думаю вырезать хотя хотел оставить или переписать по другому на конект по ip на псевдо базу где он смеряет ключ .
Хочу понять механизм и переделать чуть.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
ну вот там же всё понятно)
что да и куда идет)
 
ну вот там же всё понятно)
что да и куда идет)
Веб путь куда он обращается я же правильно понял?
Код:
URL LicenseSite = new URL
То есть сам .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 клиентка у него офнится)
это просто пример)
 
есть ещё такой вариант
Код:
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 клиентка у него офнится)
это просто пример)
Спасибо, позже рассмотрю это:)
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Назад
Сверху Снизу