我为遗留系统创建了自己的 JCA->EIS 适配器。我在连接到旧系统时无法进行身份验证。
这是相当难以解释的。在 GlassFish v3.1.1 中,在您创建自己的 JCA 适配器并安装它之后,有一个名为“Work Security Maps”的选项卡。这似乎是为 EIS 系统输入用户名/密码的唯一位置。我想用匿名(未经身份验证的)用户运行我的 EJB,但为了填写 EIS 密码,您似乎必须指定组或用户映射。
有没有办法让 JCA 适配器的所有调用都使用相同的用户名/密码访问 EIS 系统?
所需的行为类似于 JDBC 的工作方式。我的数据库有一个用户名/密码。我的应用程序注入了数据源,但我不必将当前用户映射到数据库用户。
编辑:如第一个答案中所述,您可以使用 config-properties 来实现它。但是,我不认为这是根据 JCA 规范执行此操作的正确方法。在 Websphere 中,您可以将 JAAS 凭证分配为“组件管理的身份验证别名”以及何时调用主题。
我似乎无法在 GlassFish 中执行此操作。如果你调用 Subject.getPrivateCredentials(PasswordCredential.class) 你会得到一组带有空白字符串的凭据。