保护登录后的Java类

时间:2017-11-29 10:40:49

标签: java urlclassloader

我有一个Java应用程序,我想添加许可系统。我创建了一个串行密钥系统,用于在远程服务器上启动之前验证软件。

我真正希望做的是在远程服务器上托管.jar或.zip文件,并使用URL类加载器导入类。我还需要此事务是安全的,以便只有具有有效密钥的产品才能将类加载到RAM中。

我认为这可以通过PHP和服务器端的一些重写规则来实现。但是我不知道如何从Java结束处理这个问题。我以前使用URL类加载器制作了模块化系统,但是无法找到远程执行此操作的方法。

任何人都可以解释和提供示例吗?

1 个答案:

答案 0 :(得分:0)

有多个问题

  

我真正希望做的是在远程服务器上托管.jar或.zip文件,并使用URL类加载器导入类

那是完全可能的,看看this answer,只是粘贴了许多答案中的一个

File file = ...
URL url = file.toURI().toURL();

URLClassLoader classLoader = 
(URLClassLoader)ClassLoader.getSystemClassLoader();
Method method = 
 URLClassLoader.class.getDeclaredMethod("addURL", 
URL.class);
 method.setAccessible(true);
 method.invoke(classLoader, url);

然后只使用classforname

Class.forName("ExampleClass").newInstance()
  

我还需要此事务是安全的,以便只有具有有效密钥的产品才能将类加载到RAM中

这取决于您使用的是哪种技术,也许更好地创建另一个特定的问题,但在通用答案中只需查找或编写身份验证系统即可,例如,如果您使用的是Spring,则可以使用Spring Security ,身份验证标准为OAUTH