如何获取运行jnlp的URL?

时间:2016-06-13 08:31:25

标签: java jnlp

对于我的Java Web Start应用程序,我想限制它只能从指定的域运行。如何获取运行我的应用程序的URL?我试过这种方式:

chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
chart1.ChartAreas[0].AxisY.MajorGrid.Enabled = false;
chart1.ChartAreas[0].AxisX.LineColor = Color.Transparent;
chart1.ChartAreas[0].AxisY.LineColor = Color.Transparent;

它运行正常并向我显示原点,但仅当我的jnlp文件中的codebase参数为空时。当它被设置时,它会显示代码库的url,这是错误的(当我在其他服务器上托管lib时),因为我想要运行我的jnlp的url。例如,我从“www.jnlpdomain.com”运行我的jnlp,但代码库是“www.libdomain.com” - 在这种情况下,我想知道第一个url。当我检查java控制台日志时,我可以看到以下内容:

final BasicService bs = (BasicService) ServiceManager.lookup("javax.jnlp.BasicService");
final URL codeBase = bs.getCodeBase();

所以我可以看到主机名在日志的第一行正确打印,从:

开始
JNLP Ref (absolute): www.jnlpdomain.com/my_jnlp_file.jnlp
.... (some few lines)
=====CODEBASE=====: www.libdomain.com (this line is printed by me with the bs.getCodeBase())

如何在我的应用中获取此功能,以便我可以验证域名?

1 个答案:

答案 0 :(得分:1)

查看JAR File Manifest Attributes for Security: Codebase Attribute

  

Codebase属性用于将JAR文件的代码库限制为特定域。使用此属性可防止某人出于恶意目的在其他网站上重新部署您的应用