[Java lista] Tomcat Glassfish problema classloader Security ???

István Viczián viczian.istvan at gmail.com
2009. Aug. 26., Sze, 14:07:43 CEST


Szia,

hol a JAR? Alkalmazásban WEB-INF/lib? Én első körben megpróbálnám a
Tomcat lib-jébe tenni, vagy a WEB-INF/lib-be, meg még pár helyre,
kevésbé tudományosan.

Viczi

2009/8/26 Peter Verhas <peter at verhas.com>:
> Írtam egy programot, amelyiket a Bouncycastle crypto jar-ját
> használja. És gondom van vele.  Tomcat 5.5-ön elindítva nem működik.
> (excpetion-t bemásoltam). A hiba valahol ott van, hogy a servlet init
> részében inicializálom a crypto provider-t, úgy, hogy létrehozok egy
> olyan osztályt, amiben szerepel a
>
>    static {
>            Security.addProvider(new BouncyCastleProvider());
>        }
>
> kódrészlet. Persze lehet, class loader már ezelőtt (az init futása
> előtt) betöltötte az osztályt, de elvileg annak sem kellene bajnak
> lennie.
>
> Én ugyan direktben hívom a BouncyCastle kódjait, de ő maga a Security
> rendszeren keresztül (tehát a PGP implementációjuk alá bekerülhet más
> security provider is), és ott hasal el.
>
> Glassfish v3 prelude alatt is hasonlóan nem működik, de ott más hibát
> ad, de érezhetően hasonló a gondja.
>
> glassfish-v2ur2 jól működik, Tomcat 6.0 jól működik. MI lehet ez?
>
>
> Péter
>
> Tomcat 5.5 exception:
>
>
> INFO: Illegal access: this web application instance has been stopped
> already.  Could not load
> org.bouncycastle.jce.provider.asymmetric.ec.Signature$ecDSA.  The
> eventual following stack trace is caused by an error thrown for
> debugging purposes as well as to attempt to terminate the thread which
> caused the illegal access, and has no functional impact.
> java.lang.IllegalStateException
>        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1272)
>        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
>        at java.security.Provider$Service.getImplClass(Provider.java:1262)
>        at java.security.Provider$Service.newInstance(Provider.java:1220)
>        at java.security.Signature.isSpi(Signature.java:255)
>        at java.security.Signature.getInstance(Signature.java:200)
>        at com.sun.net.ssl.internal.ssl.JsseJce.getSignature(JsseJce.java:197)
>        at com.sun.net.ssl.internal.ssl.JsseJce.isEcAvailable(JsseJce.java:156)
>        at com.sun.net.ssl.internal.ssl.CipherSuite$KeyExchange.isAvailable(CipherSuite.java:271)
>        at com.sun.net.ssl.internal.ssl.CipherSuite.isAvailable(CipherSuite.java:143)
>        at com.sun.net.ssl.internal.ssl.CipherSuiteList.buildAvailableCache(CipherSuiteList.java:210)
>        at com.sun.net.ssl.internal.ssl.CipherSuiteList.getDefault(CipherSuiteList.java:233)
>        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.init(SSLSocketImpl.java:508)
>        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:451)
>        at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:56)
>        at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.createSSLSocket(SVNSocketFactory.java:68)
>        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.connect(HTTPConnection.java:183)
>        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:323)
>        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:273)
>        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:261)
>        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:516)
>        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:98)
>        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:999)
>        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.checkPath(DAVRepository.java:217)
>        at com.verhas.groowiki.svnkit.SvnHandler.getNewRepositoryObject(SvnHandler.java:170)
>        at com.verhas.groowiki.portal.GroowikiMain.doGetInitializedProperly(GroowikiMain.java:263)
>        at com.verhas.groowiki.portal.GroowikiMain.doGet(GroowikiMain.java:203)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>        at com.verhas.groowiki.filter.AuthenticationFilter.doAuthentication(AuthenticationFilter.java:144)
>        at com.verhas.groowiki.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:179)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
>        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>        at java.lang.Thread.run(Thread.java:619)
> 2009.08.21. 10:44:46 org.apache.catalina.loader.WebappClassLoader loadClass
>
>
> ClassFish v3prelude exception:
>
> SEVERE: StandardWrapperValve[main]: PWC1406: Servlet.service() for
> servlet main threw exception
> java.lang.ThreadDeath
>        at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1344)
>        at java.security.Provider$Service.getImplClass(Provider.java:1262)
>        at java.security.Provider$Service.newInstance(Provider.java:1220)
>        at java.security.Signature.isSpi(Signature.java:255)
>        at java.security.Signature.getInstance(Signature.java:200)
>        at com.sun.net.ssl.internal.ssl.JsseJce.getSignature(JsseJce.java:197)
>        at com.sun.net.ssl.internal.ssl.JsseJce.isEcAvailable(JsseJce.java:156)
>        at com.sun.net.ssl.internal.ssl.CipherSuite$KeyExchange.isAvailable(CipherSuite.java:271)
>        at com.sun.net.ssl.internal.ssl.CipherSuite.isAvailable(CipherSuite.java:143)
>        at com.sun.net.ssl.internal.ssl.CipherSuiteList.buildAvailableCache(CipherSuiteList.java:210)
>        at com.sun.net.ssl.internal.ssl.CipherSuiteList.getDefault(CipherSuiteList.java:233)
>        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.init(SSLSocketImpl.java:508)
>        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:451)
>        at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:56)
>        at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.createSSLSocket(SVNSocketFactory.java:68)
>        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.connect(HTTPConnection.java:183)
>        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:323)
>        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:273)
>        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:261)
>        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:516)
>        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:98)
>        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:999)
>        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.checkPath(DAVRepository.java:217)
>        at com.verhas.groowiki.svnkit.SvnHandler.getNewRepositoryObject(SvnHandler.java:170)
>        at com.verhas.groowiki.portal.GroowikiMain.doGetInitializedProperly(GroowikiMain.java:263)
>        at com.verhas.groowiki.portal.GroowikiMain.doGet(GroowikiMain.java:203)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
>        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:431)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:337)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:218)
>        at com.verhas.groowiki.filter.AuthenticationFilter.doAuthentication(AuthenticationFilter.java:144)
>        at com.verhas.groowiki.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:179)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:250)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:218)
>        at org.apache.catalina.core.StandardWrapperValve.preInvoke(StandardWrapperValve.java:460)
>        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:139)
>        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:186)
>        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
>        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
>        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
>        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
>        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
>        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
>        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
>        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
>        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
>        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:142)
>        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
>        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
>        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
>        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
>        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
>        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:242)
>        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:180)
>        at com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:633)
>        at com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:570)
>        at com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:827)
>        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
>        at com.sun.enterprise.v3.services.impl.GlassfishProtocolChain.executeProtocolFilter(GlassfishProtocolChain.java:71)
>        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
>        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
>        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
>        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
>        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:56)
>        at com.sun.grizzly.util.WorkerThreadImpl.processTask(WorkerThreadImpl.java:325)
>        at com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:184)
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>


További információk a(z) Javalist levelezőlistáról