受信任的证书条目不受密码保护 java
Posted
技术标签:
【中文标题】受信任的证书条目不受密码保护 java【英文标题】:trusted certificate entries are not password-protected java 【发布时间】:2016-01-26 23:33:49 【问题描述】:我有一个其他方提供的 .cer 文件。我需要用这个 .cer 文件创建一个 saml 凭证。
为此,我使用以下命令将 .cer 文件导入 jks 文件。 (密码与密码相同。它从提示中要求接受证书。我给了 y 然后它说证书已添加到密钥库)
keytool -importcert -file xyz.cer -keystore test.jks -alias "testsp"
然后我使用这个 jks 文件来创建凭证,如下所示。
private Credential getCredential()
KeyStore keystore = readKeystoreFromFile("C:\\Users\\WTC\\Downloads\\icicistage\\test.jks", "password");
Map<String, String> passwordMap = new HashMap<String, String>();
passwordMap.put("testsp", "password");
KeyStoreCredentialResolver resolver = new KeyStoreCredentialResolver(keystore, passwordMap);
Criteria criteria = new EntityIDCriteria("testsp");
CriteriaSet criteriaSet = new CriteriaSet(criteria);
Credential credential = null;
try
credential = resolver.resolveSingle(criteriaSet);
catch (SecurityException e)
e.printStackTrace();
return credential;
private static KeyStore readKeystoreFromFile(String pathToKeyStore, String keyStorePassword)
try
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
InputStream inputStream = new FileInputStream(pathToKeyStore);
keystore.load(inputStream, keyStorePassword.toCharArray());
inputStream.close();
return keystore;
catch (Exception e)
throw new RuntimeException("Something went wrong reading keystore", e);
下面的行在 try 块中给了我以下错误。
credential = resolver.resolveSingle(criteriaSet);
java.lang.UnsupportedOperationException:受信任的证书条目不受密码保护
谁能指导我解决这个问题?
【问题讨论】:
【参考方案1】:解决了这个问题。
我们不需要在密码映射中提供密码。由于证书仅包含公钥。它不会取密码。
从代码中删除了以下行,它工作正常。
passwordMap.put("testsp", "password");
【讨论】:
以上是关于受信任的证书条目不受密码保护 java的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security SAML 可信证书条目不受密码保护