gpt4 book ai didi

java - Glassfish v3 中的 IIOP 客户端身份验证和 ProgrammaticLogin

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:25:59 24 4
gpt4 key购买 nike

在 Glassfish v2 中,我通过在 ORB 节点下的管理控制台中启用“IIOP 客户端身份验证”复选框来保护我的 JNDI 查找。

然后在我的独立客户端中执行“ProgrammaticLogin”,然后允许我执行 JNDI 查找。

但是,在 Glassfish v3 中,如果想在同一设置中执行任何 JNDI 查找,我会收到此错误:

18.08.2010 14:31:10 com.sun.enterprise.transaction.JavaEETransactionManagerSimplified
initDelegates INFO: Using
com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate
as the delegate
org.omg.CORBA.NO_PERMISSION:
----------BEGIN server-side stack trace----------
org.omg.CORBA.NO_PERMISSION:
vmcid: 0x0
minor code: 0
completed: No

我很确定“ProgrammaticLogin”一般都能正常工作,因为它允许我在我的安全 EJB 上执行远程方法调用(使用 @RolesAllowed 但如果 IIOP Client Auth 已关闭)。

我登录的用户是我为"file"领域创建的简单用户。

任何想法,为什么 ProgrammticLogin 无法在 Glassfish v3 中工作以授权 JNDI 查找?

或者从独立客户端使用 ORB 进行身份验证的正确方法是什么?为了这个目的?

最佳答案

您确定 appserv-rt.jar 在您的类路径中吗?它是每个 glassfish3 安装的一部分,例如在我的安装中,它位于此处:

/opt/glassfish3/glassfish/lib

这很重要。它包含一些客户端 java 类,特别是:AppclientIIOPInterceptorFactory。

这些向 ORB 添加一个 SecClientRequestInterceptor,它关心将用户名和密码添加到发送到服务器的 GIOP 请求中。

我花了大约两天时间扫描了 glassfish 的源代码,并用 wireshark 嗅探了电线上的 corba 包,直到我找到了这个。

可以在此处找到如何保护 bean 和编写真正的 Java EE 客户端的示例: http://download.oracle.com/docs/cd/E19798-01/821-1841/bnbzk/index.html

希望对你有帮助 曼纽尔

关于java - Glassfish v3 中的 IIOP 客户端身份验证和 ProgrammaticLogin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3519676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com