首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jespa NTLM身份验证在一个环境中失败

Jespa NTLM身份验证在一个环境中失败
EN

Stack Overflow用户
提问于 2011-03-17 03:00:29
回答 1查看 2.3K关注 0票数 0

我有一些Java代码需要针对运行NTLM身份验证的Sharepoint服务器进行身份验证。我让这段代码在IDE的命令行上运行得很好,但是当我将它作为portlet部署在Liferay中时,它就失败了,并显示401未授权。

代码是完全相同的,只是调用方式不同。一种是在doView() portlet方法期间(portlet呈现阶段),另一种是来自公共静态void main方法(可以工作)。

我将Jespa日志设置为4级以查看输出。在NetBeans集成开发环境中:

代码语言:javascript
复制
HttpPeer: state=ST_SENT
HttpPeer: state=ST_RECEIVED status=401
NtlmSecurityProvider: null
HttpPeer: state=ST_SENT
HttpPeer: state=ST_RECEIVED status=401
NtlmSecurityProvider: NTLM2 Session Security key negotiated successfully
NtlmSecurityProvider: Initiator negotiated NTLMv2
HttpPeer: state=ST_SENT
HttpPeer: state=ST_RECEIVED status=200

在Liferay日志中:

代码语言:javascript
复制
HttpPeer: state=ST_SENT
HttpPeer: state=ST_RECEIVED status=401
NtlmSecurityProvider: null
HttpPeer: state=ST_SENT
HttpPeer: state=ST_RECEIVED status=401
18:37:58,578 ERROR [SharepointListPortlet:76] 
java.security.PrivilegedActionException: our.portlet.util.HttpException: 401 Unauthorized
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at jespa.security.RunAs.runAs(RunAs.java:261)
    at jespa.security.RunAs.runAs(RunAs.java:269)

它可能是简单的东西,但我不能确定它。我已经检查了所有的Jespa示例代码,但什么也没有找到。当然,Jespa是一个商业产品,我只是在评估它,所以我不能支付支持费用。如果有人有任何建议,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2011-11-01 11:41:43

即使您尚未购买产品,IOPLEX支持仍将为您提供帮助。

关于您的问题,请尝试使用"header properties“提供凭据,而不是使用javax.security.auth.Subject提供凭据。也许你的Liferay东西正在创建新的线程,而基于主题的凭据正在被删除。这个特性在任何地方都没有文档记录(因此从技术上讲它不受支持),但是可以查看examples/HttpGetWithHeaderProperties.java。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5330364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档