jcp.1.0.46 (без лицензии временно, будет закупать когда точно определимся с машинами)
jdk1.6.0_25
JCPxml.jar удален из каталога /ext/ и добавлен только в проект.
wss4j-1.6.3
в endorsed каталога JRE добавлен xercesImpl-2.9.1.jar
xmlsec-1.5.0.jar
сервер приложений JavaEE Oracle GlassFish Server 3.0.1 (build 22)
подписываю SOAP запрос согласно
http://www.cryptopro.ru/...olzovaniem-kriptopro-jcpВо время подписания, на строчке
Цитата:XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM", xmlDSigProvider);
вываливается экзепшин
javax.xml.crypto.NoSuchMechanismException: class configured for XMLSignatureFactory(provider: CryptoProXMLDSig)cannot be found
перед этим (но после создания объекта Provider) вывожу список провайдеров
Цитата:Provider[] pr = Security.getProviders();
for (int i=0;i<pr.length;i++){
System.out.println();
System.out.print("\n"+pr[i].getName()+";!"+pr[i].getInfo()+";!"+pr[i].toString());
System.out.println();
}
получаю
Цитата:SUN;!SUN (DSA key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509 certificates; JKS keystore; PKIX CertPathValidator; PKIX CertPathBuilder; LDAP, Collection CertStores, JavaPolicy Policy; JavaLoginConfig Configuration);!SUN version 1.6|#]
SunRsaSign;!Sun RSA signature provider;!SunRsaSign version 1.5|#]
SunJSSE;!Sun JSSE provider(PKCS12, SunX509 key/trust factories, SSLv3, TLSv1);!SunJSSE version 1.6|#]
SunJCE;!SunJCE Provider (implements RSA, DES, Triple DES, AES, Blowfish, ARCFOUR, RC2, PBE, Diffie-Hellman, HMAC);!SunJCE version 1.6|#]
SunJGSS;!Sun (Kerberos v5, SPNEGO);!SunJGSS version 1.0|#]
SunSASL;!Sun SASL provider(implements client mechanisms for: DIGEST-MD5, GSSAPI, EXTERNAL, PLAIN, CRAM-MD5; server mechanisms for: DIGEST-MD5, GSSAPI, CRAM-MD5);!SunSASL version 1.5|#]
XMLDSig;!XMLDSig (DOM XMLSignatureFactory; DOM KeyInfoFactory);!XMLDSig version 1.0|#]
SunPCSC;!Sun PC/SC provider;!SunPCSC version 1.6|#]
JCP;!CryptoPro Java Provider;!JCP version 1.0|#]
Crypto;!CryptoPro Java Cipher Provider.;!Crypto version 1.0|#]
RevCheck;!CryptoPro Java Revocation Checker.;!RevCheck version 1.0|#]
как видим в нем отсутствует
CryptoProXMLDSigэта проблема только на промышленном сервереНа технологическом все работает хорошо, отличие только в сервере приложения - стоит - Oracle GlassFish Server 3.1 (build 43)
и со списком зарегистрированных провайдеров все нормально
Цитата:SUN;!SUN (DSA key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509 certificates; JKS keystore; PKIX CertPathValidator; PKIX CertPathBuilder; LDAP, Collection CertStores, JavaPolicy Policy; JavaLoginConfig Configuration);!SUN version 1.6|#]
SunRsaSign;!Sun RSA signature provider;!SunRsaSign version 1.5|#]
SunJSSE;!Sun JSSE provider(PKCS12, SunX509 key/trust factories, SSLv3, TLSv1);!SunJSSE version 1.6|#]
SunJCE;!SunJCE Provider (implements RSA, DES, Triple DES, AES, Blowfish, ARCFOUR, RC2, PBE, Diffie-Hellman, HMAC);!SunJCE version 1.6|#]
SunJGSS;!Sun (Kerberos v5, SPNEGO);!SunJGSS version 1.0|#]
SunSASL;!Sun SASL provider(implements client mechanisms for: DIGEST-MD5, GSSAPI, EXTERNAL, PLAIN, CRAM-MD5; server mechanisms for: DIGEST-MD5, GSSAPI, CRAM-MD5);!SunSASL version 1.5|#]
XMLDSig;!XMLDSig (DOM XMLSignatureFactory; DOM KeyInfoFactory);!XMLDSig version 1.0|#]
SunPCSC;!Sun PC/SC provider;!SunPCSC version 1.6|#]
JCP;!CryptoPro Java Provider;!JCP version 1.0|#]
Crypto;!CryptoPro Java Cipher Provider.;!Crypto version 1.0|#]
RevCheck;!CryptoPro Java Revocation Checker.;!RevCheck version 1.0|#]
CryptoProXMLDSig;!Crypto-Pro XMLDSig (DOM XMLSignatureFactory; DOM KeyInfoFactory; C14N 1.0, C14N 1.1, Exclusive C14N, Base64, Enveloped, XPath, XPath2, XSLT TransformServices);!CryptoProXMLDSig version 1.51|#]
Вернемся на промышленный сервер:
Пытался добавить в список требуемый провайдер
Security.insertProviderAt(xmlDSigProvider, 0);НЕ помогло. Конечно в списке Security.getProviders() - он появился! но экзепшин все равно происходит.
Цитата:
Provider xmlDSigProvider = new ru.CryptoPro.JCPxml.dsig.internal.dom.XMLDSigRI();
final Transforms transforms = new Transforms(doc);
transforms.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS);
Security.insertProviderAt(xmlDSigProvider, 0 ) ;
Provider[] pr = Security.getProviders();
for (int i=0;i<pr.length;i++){
System.out.println();
System.out.print("\n"+pr[i].getName()+";!"+pr[i].getInfo()+";!"+pr[i].toString());
System.out.println();
}
XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM", xmlDSigProvider);
пысы: сорри, но оформить код не получилось, чото ваш движок форума не воспринимает символы "[" и "]" в коде.
Помогите решить проблему. Переустановить глассфиш - не очень легкая задача, в плане бюрократии и согласования - сервер останавливать нельзя.
Отредактировано пользователем 25 декабря 2012 г. 10:00:59(UTC)
| Причина: Не указана