无法在受保护的站点上启动Java Web start
我有以下问题。在一台服务器中,我有一个文件夹/protected/,需要使用SAML令牌进行身份验证 当我尝试访问此文件夹中的资源时,我首先会被重定向到登录页面,登录后我可以访问该资源 现在,我在/protected/文件夹中添加了一个.jnlp文件,其中包含所需的所有资源。当我尝试访问.jnlp文件时,我得到了预期的登录页面。登录JavaWebStart后,初始化并尝试下载资源 但是,Smart Start立即失败,抱怨它无法解析.jnlp文件。当我查看调试控制台时,我看到Java下载了登录页面,而不是jnlp文件。因此,Java Web Start应用程序似乎不共享浏览器的凭据,因此需要重新登录 我的身份提供者是ZXID,我们正在使用SAML。我假设JavaWebStart必须以某种方式使用与浏览器相同的SAML令牌,对吗?这是正确的吗?可能吗 到目前为止,在我的调查中,当浏览器发现一个.jnlp文件时,它会立即启动Java,Java应用程序会尝试下载jnlp,从而产生这个问题。我确实发现JNLP文件不能包含代码基条目。否则,JavaVM将尝试重新下载该文件,但由于该文件未经过身份验证,因此将获得登录页面 但是,如果可以读取JNLP,则资源也不能位于受保护区域中,因为JWS同样没有经过身份验证 因此,我想需要的是JWS-VM以某种方式从浏览器获取会话id,因此它被认为是经过身份验证的无法在受保护的站点上启动Java Web start,java,web-applications,java-web-start,saml,Java,Web Applications,Java Web Start,Saml,我有以下问题。在一台服务器中,我有一个文件夹/protected/,需要使用SAML令牌进行身份验证 当我尝试访问此文件夹中的资源时,我首先会被重定向到登录页面,登录后我可以访问该资源 现在,我在/protected/文件夹中添加了一个.jnlp文件,其中包含所需的所有资源。当我尝试访问.jnlp文件时,我得到了预期的登录页面。登录JavaWebStart后,初始化并尝试下载资源 但是,Smart Start立即失败,抱怨它无法解析.jnlp文件。当我查看调试控制台时,我看到Java下载了登录页
有什么想法吗?到目前为止,我还没有找到解决这个问题的正确方法。我做了以下几件事,它成功了:
- 在我的服务器上创建了一个受保护的区域,并在其后面添加了一个servlet
- 我的servlet动态创建一个JNLP文件,带有会话id
- JNLP文件用于从公共位置下载JAR
- web start应用程序使用会话id从受保护区域加载资源