Closed radek252 closed 7 years ago
Dobrý večer,
Výjimka java.lang.SecurityException: JCE cannot authenticate the provider BC
naznačuje, že knihovna je k dispozici, ale nastal problém s ověřením digitálního podpisu jaru BouncyCastle. Při pokusech přibalit jej k aplikaci (farjar) nastává obdobný problém.
Vidím, že knihovnu používáte ve webové aplikaci spuštěné v Jetty. Ověřil bych, jak se build chová k závislostem a jak přibaluje jary k výsledné aplikaci.
Pokud bych závislost nastavil na <scope>provided</scope>
, musel by každý uživatel knihovnu poskytnout sám a asi bych tak více lidem práci přidělal než zjednodušil. Pokud ale chcete dodat BC sám, mělo by fungovat excludnout mou závislost na BC a přidat jí ve svém projektu jak bude potřeba,
Kdyby nic z toho nezabralo, klidně dejte vědět.
S pozdravem Tomáš
Mam podobnou zkusenost v jee kontejneru. Knihovnu bouncycastel je potreba umistit jako globalni lib namisto app scoped knihovny.
Dobry den, mozna by bylo reseni tuto knihovnu nepouzivat. Pouzit standardni tridy z javy 7. Projekt by pak nejel s openjdk 6.
Diky za radu: Excludnul jsem celeho eet-clienta z fatjaru a nainstaloval ho do classpath na cilovem pocitaci rucne.
@PavelCibulka: bouhužel standardní třídy z JDK neumožňují například pracovat s CRL(např. CRLUtils.java), případně jen za cenu velkých ústupků a používání neveřejných API. Proto jsem byl nucen použít BC. Sám bych jej raději nepoužil, kdyby to bylo možné. Rád přijmu PR, pokud se pletu a jde se bez BC obejít.
@radek252: pokud takový postup vedl k cíli, tak zřejmě OK. Já bych raději zaexperimentoval s excludnitím BC a přidáním jej jako provided. Každopádně kdyby bylo něco, čím vám mohu práci usnadnit, dejte prosím vědět. Můžeme nyní issue uzavřít?
Pro pořádek v issues zavírám a doufám, že je vše vyřešeno ke spokojenosti. Pokud ne, prosím issue znovu otevřít a připojit nějaký feedback, kde můžeme pokračovat.
Díky, Tomáš
Pouzil jsem Vaseho klienta pro EET. Na mem pocitaci vse funguje v poradku, jak spustenim z NetBeans, tak i samostatne jar. Pokud ale nahraji jak na jiny pocitac, objevi se tato vyjimka. Clienta eet-client mam ve svem maven projektu
nekde jsem nasel, ze bouncycastle by mel mitprovided, ale ve Vasem pom.xml to neni uvedeno.
Projekt je Java8, jce_policy-8 jsem nakopiroval, ale s timhle si nevim rady. Dekuji za pomoc.
cz.tomasdvorak.eet.client.exceptions.InvalidKeystoreException: java.io.IOException: error constructing MAC: java.lang.SecurityException: JCE cannot authenticate the provider BC(ClientKey.java:51)
at cz.tomasdvorak.eet.client.EETServiceFactory.getInstance(EETServiceFactory.java:24)
at Main.sendEetRequestProduction(Main.java:73)
at Main.lambda$main$1(Main.java:56)
at spark.TemplateViewRouteImpl$1.handle(TemplateViewRouteImpl.java:66)
at spark.http.matching.Routes.execute(Routes.java:61)
at spark.http.matching.MatcherFilter.doFilter(MatcherFilter.java:126)
at spark.embeddedserver.jetty.JettyHandler.doHandle(JettyHandler.java:50)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
at org.eclipse.jetty.server.Server.handle(Server.java:517)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: error constructing MAC: java.lang.SecurityException: JCE cannot authenticate the provider BC
at org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at cz.tomasdvorak.eet.client.security.ClientKey.getKeyStore(ClientKey.java:83)
... 22 more
at cz.tomasdvorak.eet.client.security.ClientKey.getKeyStore(ClientKey.java:93) at cz.tomasdvorak.eet.client.security.ClientKey.