我有以下问题。在一台服务器中,我有一个文件夹/ protected /,需要使用SAML令牌进行身份验证。
当我尝试访问此文件夹中的资源时,我首先被重定向到登录页面,登录后我可以访问该资源。
现在,我在/ protected /文件夹中添加了一个.jnlp文件,其中包含所有必需的资源。当我尝试访问.jnlp文件时,我按预期获得登录页面。登录Java Web Start后初始化并尝试下载资源。
但是,Smart Start立即失败,抱怨它无法解析.jnlp文件。当我查看调试控制台时,我看到Java已经下载而不是jnlp文件,而是登录页面。因此,似乎Java Web Start应用程序不共享浏览器的凭据,因此需要新的登录
我的身份提供商是ZXID,我们正在使用SAML。我认为Java Web Start必须以某种方式使用与浏览器相同的SAML令牌,对吧?它是否正确?有可能吗?
到目前为止,在我的调查中,似乎当浏览器找到.jnlp文件时,它立即启动Java,Java应用程序将尝试下载jnlp,从而产生此问题。我确实发现JNLP文件不能包含codebase条目。否则Java VM将尝试重新下载该文件,但由于它未经过身份验证,因此将获取登录页面。
但是,如果可以读取JNLP,则资源也不能位于受保护区域,因为JWS未经过身份验证。
所以我猜需要的是JWS VM以某种方式从浏览器获取会话ID,因此它被认为是Authenticated。
有什么想法吗?
答案 0 :(得分:1)
到目前为止,我还没有找到解决这个问题的正确方法。我做了以下工作,并且有效: