【问题标题】:How to access authentication alias from EJB deployed to Websphere 6.1如何从部署到 Websphere 6.1 的 EJB 访问身份验证别名
【发布时间】:2011-06-07 12:07:11
【问题描述】:

我需要为我的 EJB 中的密钥库提供密码,但我不希望它对开发人员可见。我的想法是在 Websphere Console 中创建身份验证别名,然后查找 MY_ALIAS 并从别名获取密码。 我在以下位置找到了一些与主题相关的讨论: http://www.coderanch.com/t/79439/Websphere/Authentication-Data

有人知道可以查找别名吗?您建议的实现我的目标的方法是什么?

非常感谢!

【问题讨论】:

    标签: java security websphere jaas websphere-6.1


    【解决方案1】:

    您可以使用以下代码从 J2C 身份验证数据条目中获取凭据:

    import com.ibm.wsspi.security.auth.callback.Constants;
    import com.ibm.wsspi.security.auth.callback.WSMappingCallbackHandlerFactory;
    import javax.resource.spi.security.PasswordCredential;
    import javax.security.auth.Subject;
    import javax.security.auth.callback.CallbackHandler;
    import javax.security.auth.login.LoginContext;
    
    Map map = new HashMap();
    map.put(Constants.MAPPING_ALIAS, "YOUR_J2C_DATA_ALIAS");
    CallbackHandler callbackHandler = WSMappingCallbackHandlerFactory.getInstance().getCallbackHandler(map, null);
    
    LoginContext loginContext = new LoginContext("DefaultPrincipalMapping", callbackHandler);
    loginContext.login();
    
    Subject subject = loginContext.getSubject();
    Set credentials = subject.getPrivateCredentials();
    
    PasswordCredential passwordCredential = (PasswordCredential) credentials.iterator().next();
    
    String user = passwordCredential.getUserName();
    String password = new String(passwordCredential.getPassword());
    

    【讨论】:

    • 我想知道是否有办法在不引用 Websphere 特定类(Constants 和 WSMappingCallbackHandlerFactory)的情况下做到这一点?
    • @Freg 我认为这是不可能的。它是特定于 WAS 的东西,所以应该假设使用一些特定的类。顺便说一句,这些是公共 WAS API 的一部分。使用有什么问题吗?
    • 我确信我可以使用它,但我不想在我的应用程序中包含特定于容器的类。没有办法只针对 JEE 类进行编码吗?是什么让这个 WAS 特定?是仅限 WAS 的 J2C 身份验证数据吗?
    • 您不必包含它们 - 对它们进行编译就足够了。配置领域中有很多事情取决于服务器。 Java EE 规范中没有 Authentication Alias 之类的东西。它故意避免指定此类内容,这是有原因的。
    • 以节点名称为前缀的别名只是一个约定。在创建别名期间默认添加前缀,但您不必这样做。所以从 J2C 的角度来看,任何别名都只是一个不透明的 id。您可能想要的是获取节点名称(假设您的环境使用该默认约定)。我很确定应该有这个或至少某种方式的 API。我想不起来了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多