使用 HTTPS 和 JAAS 上传 Flex 文件?
我们正在尝试将文件从 Flex 客户端上传到 Java EE 应用程序。
- 在完整的 HTTPS 环境中,
- Java EE 服务器是 JBoss 5
- 使用 BlazeDS“自定义”身份验证(通过 Flex 表单输入用户名和密码)
- 使用 BlazeDS 每会话身份验证
在常规 AMF 调用中,我们可以访问用户主体并使用角色机制。
但是,在我们的上传 servlet 中,我们无法访问用户主体。
request.getUserPrincipal() // returns null
如何解决这个问题?
We're trying to upload a file from a flex client to a Java EE app.
- In a full HTTPS environment
- Java EE server is JBoss 5
- Using BlazeDS 'Custom' authentication (username and password are entered trhough a flex form)
- Using BlazeDS per session authentication
In regular AMF calls, we can access user principal and use role mecanism.
However, in our upload servlet, we have no access to user principal.
request.getUserPrincipal() // returns null
How to fix this ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不久前,一个人在我的一篇博客文章上评论说 https + flex + firefox 不起作用:
这可能不再是这种情况 - 注册并查看链接的错误是否仍未解决。
另外 - 这可能不是你的确切问题(至少现在还不是) - 我只是给出指示。
A while ago a guy commented on a blog post of mine that https + flex + firefox doesn't work:
This may no longer be the case - register and see if the linked bug is still unresolved.
Also - this might not be your exact issue (at least not yet) - I'm just giving pointers.
从你的帖子来看,由于我没有使用过 BlazeDS,我无法判断你是否具体遇到了这个问题,但在我看来,你是这样的——
看看你的服务器日志,或者尝试使用像 Fiddler 这样的 Web 调试器(您可以调整它以以明文形式显示 HTTPS 流量),并且您'您将看到 Flash 使用 FileReference.upload() 阻止自定义 HTTP 身份验证标头。为什么会这样,我不知道,但除了手动制作一些东西或你自己的东西之外,我不知道有什么解决方法。
From your post, and since I haven't used BlazeDS, I can't tell whether you're running into this issue specifically, but it sounds to me like you are --
Take a look at your server logs, or try using a Web debugger like Fiddler (you can tweak it to reveal HTTPS traffic in clear text), and you'll see that Flash blocks custom HTTP auth headers with FileReference.upload(). Why it does, I've no idea, but there's no workaround I know of, other than crafting something or your own manually.