从Java映射访问KeyStore

2020-09-10 08:49发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家 我正在研究PI 7....

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家

我正在研究PI 7.3双堆栈。 有一个要求,Java映射必须访问密钥存储管理器并获取NWA中维护的数字密钥。 请提供任何示例代码和相关的jar文件。

谢谢,

Rana Brata De

11条回答
SKY徐
2020-09-10 08:57

嗨,

您在这里:

 import java.rmi.RemoteException;
 导入java.security.KeyStore;
 导入java.security.KeyStoreException;
 导入java.security.PrivateKey;
 导入java.security.Security;
 导入java.security.cert.Certificate;
 导入java.security.cert.X509Certificate;
 导入javax.naming.InitialContext;
 导入javax.naming.NamingException;
 导入com.sap.engine.interfaces.keystore.KeystoreManager;
 导入com.sap.security.core.server.ssf.SsfProfileKeyStore;
 导入com.sap.aii.mapping.api.StreamTransformationException;


 私有静态SsfProfileKeyStore getCertProfile(字符串别名,字符串密码)抛出StreamTransformationException {
//从AS Java的密钥库服务获取配置文件
 InitialContext ctx = null;
 尝试{
 ctx = new InitialContext();
 } catch(NamingException ex){
 抛出新的StreamTransformationException(" Initial context:" + ex.getMessage(),ex);
 }

 KeystoreManager manager = null;
 尝试{
 manager =(KeystoreManager)ctx.lookup(" keystore");
 } catch(NamingException ex){
 抛出新的StreamTransformationException(" Named object:" + ex.getMessage(),ex);
 }

 KeyStore keyStore = null;
 尝试{
 keyStore = manager.getKeystore(" DEFAULT");
 } catch(RemoteException ex){
 抛出新的StreamTransformationException(" Default keystore:" + ex.getMessage(),ex);
 }

 SsfProfileKeyStore配置文件= null;
 尝试{
 profile =新的SsfProfileKeyStore(keyStore,别名,密码);
 } catch(ex KeyStoreException ex){
 抛出新的StreamTransformationException(" Profile:" + ex.getMessage(),ex);
 }

 返回个人资料;
 }

 (...)

 SsfProfileKeyStore配置文件= getCertProfile(别名,密码);
 私钥=(PrivateKey)profile.getPrivateKey();
 X509Certificate []链= profile.getCertificateChain();
 

致谢,

Andrzej

一周热门 更多>