Я использую spnego.jar из dfelix с Glassfish 4.1 в качестве фильтра в web.xml. Я задал вопрос на форуме по проекту, но не получил ответа.spnego.jar switch from Java 7 to Java 8 cast exception
Я хочу переключиться с Java 1.7.0_45 на 1.8.0_45 (попробовал и другие версии 1.8). После включения тестовой среды я получаю ошибку, показанную ниже. Пробовал и отдельный случай с простой Java также получил исключение случая.
Я использую тот же krb5.conf (ниже), файл login.conf и keytab, как в 1.7.
Это несовместимо с Java 1.8?
[GlassFish 4.1] [СУРОВОЙ] [] [javax.enterprise.web] [TID: _ThreadID = 16 _ThreadName = RunLevelControllerThread-1431425761516] [timeMillis: 1431425776202] [levelValue: 1000] [[ WebModule [/ ах] Исключение исходный фильтр SpnegoHttpFilter
java.lang.InstantiationException на org.apache.catalina.core.ApplicationFilterConfig. (ApplicationFilterConfig.java:135)
в org.apache.catalina.core.StandardContext.filterStart (StandardContext.java : 5329)
по адресу org.apache.catalina.core.StandardContext.start (StandardContext.java:5943) at com.sun.enterprise. web.WebModule.start (WebModule.java:691)
в org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java:1041)
в org.apache.catalina.core.ContainerBase.addChild (ContainerBase. Java: 1024)
на org.apache.catalina.core.StandardHost.addChild (StandardHost.java:747)
в com.sun.enterprise.web.WebContainer.loadWebModule (WebContainer.java:2286)
на ком .sun.enterprise.web.WebContainer.loadWebModule (WebContainer.java:1932)
на com.sun.enterprise.web.WebApplication.start (WebApplication.java:139)
в org.glassfish.internal.data.EngineRef .start (EngineRef.jav а: 122)
на org.glassfish.internal.data.ModuleInfo.start (ModuleInfo.java:291)
на org.glassfish.internal.data.ApplicationInfo.start (ApplicationInfo.java:352)
на ком .sun.enterprise.v3.server.ApplicationLifecycle.deploy (ApplicationLifecycle.java:500)
на com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication (ApplicationLoaderService.java:406)
в com.sun.enterprise .v3.server.ApplicationLoaderService.postConstruct (ApplicationLoaderService.java:243)
на org.jvnet.hk2.internal.ClazzCreator.postConstructMe (ClazzCreator.java:329)
в org.jvnet.hk2.i nternal.ClazzCreator.create (ClazzCreator.java:377)
на org.jvnet.hk2.internal.SystemDescriptor.create (SystemDescriptor.java:461)
в org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate (AsyncRunLevelContext.java:227)
на org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate (RunLevelContext.java:84)
в org.jvnet.hk2.internal.Utilities.createService (Utilities.java:2258)
на org.jvnet.hk2.internal.ServiceHandleImpl.getService (ServiceHandleImpl.java:105)
в org.jvnet.hk2.internal.ServiceHandleImpl.getService (ServiceHandleImpl.java:87)
в орг. glassfish.hk2.runlevel.internal.CurrentTaskFuture $ QueueRunner.oneJob (CurrentTaskFuture.java:1162)
в org.glassfish.hk2.runlevel.internal.CurrentTaskFuture $ QueueRunner.run (CurrentTaskFuture.java:1147)
в java.util.concurrent. ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617)
в java.lang.Thread.run (Thread.java:745)
Вызывается: javax.servlet.ServletException: javax.security.auth.login.LoginException: java.lang.IllegalArgumentException: java.lang.ClassCastException: java.util.Vector нельзя отбрасывать в java.util.Hashtable
на солнце. security.krb5.Con fig.get0 (Config.java:287)
на sun.security.krb5.Config.getString0 (Config.java:268)
в sun.security.krb5.Config.getAll (Config.java:240)
на sun.security.krb5.Config.getKDCList (Config.java:1030)
в sun.security.krb5.KdcComm.send (KdcComm.java:218)
в sun.security.krb5.KdcComm.send (KdcComm .java: 200)
на sun.security.krb5.KrbAsReqBuilder.send (KrbAsReqBuilder.java:316)
в sun.security.krb5.KrbAsReqBuilder.action (KrbAsReqBuilder.java:361)
в com.sun. security.auth.module.Krb5LoginModule.attemptAuthenti катион (Krb5LoginModule.java:776)
в com.sun.security.auth.module.Krb5LoginModule.login (Krb5LoginModule.java:617)
в sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
на солнце. reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
на sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
в java.lang.reflect.Method.invoke (Method.java:497)
в javax.security.auth.login.LoginContext.invoke (LoginContext.java:755)
at javax.security.auth.login.LoginContext.access $ 000 (LoginContext.java:195)
в javax.security.auth.login.LoginContext $ 4.run (LoginContext.java:682)
в javax.security.auth.login.LoginContext $ 4.run (LoginContext.java:680)
в java.security .AccessController.doPrivileged (Родной метод)
в javax.security.auth.login.LoginContext.invokePriv (LoginContext.java:680)
в javax.security.auth.login.LoginContext.login (LoginContext.java:587)
на net.sourceforge.spnego.SpnegoAuthenticator. (SpnegoAuthenticator.java:161)
на net.sourceforge.spnego.SpnegoHttpFilter.init (SpnegoHttpFilter.java:196)
в орг .apache.catalina.core.ApplicationFilterConfig.getFilter (ApplicationFilterConfig.java:275)
на org.apache.catalina.core.ApplicationFilterConfig. (ApplicationFilterConfig.java:131)
на org.apache.catalina.core.StandardContext. filterStart (StandardContext.java:5329)
на org.apache.catalina.core.StandardContext.start (StandardContext.java:5943)
в com.sun.enterprise.web.WebModule.start (WebModule.java:691)
at org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java:1041)
at org.apache.catalina.core.ContainerBase.addChild (ContainerBase.Java: 1024)
на org.apache.catalina.core.StandardHost.addChild (StandardHost.java:747)
в com.sun.enterprise.web.WebContainer.loadWebModule (WebContainer.java:2286)
на ком .sun.enterprise.web.WebContainer.loadWebModule (WebContainer.java:1932)
на com.sun.enterprise.web.WebApplication.start (WebApplication.java:139)
в org.glassfish.internal.data.EngineRef .start (EngineRef.java:122)
at org.glassfish.internal.data.ModuleInfo.start (ModuleInfo.java:291)
at org.glassfish.internal.data.ApplicationInfo.start (ApplicationInfo.java:352))
в com.sun.enterprise.v3.server.ApplicationLifecycle.deploy (ApplicationLifecycle.java:500)
в com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication (ApplicationLoaderService.java:406)
на ком. sun.enterprise.v3.server.ApplicationLoaderService.postConstruct (ApplicationLoaderService.java:243)
в org.jvnet.hk2.internal.ClazzCreator.postConstructMe (ClazzCreator.java:329)
в org.jvnet.hk2.internal. ClazzCreator.create (ClazzCreator.java:377)
на org.jvnet.hk2.internal.SystemDescriptor.create (SystemDescriptor.java:461)
в org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.f indOrCreate (AsyncRunLevelContext.java:227)
на org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate (RunLevelContext.java:84)
в org.jvnet.hk2.internal.Utilities.createService (Utilities.java:2258)
на org.jvnet.hk2.internal.ServiceHandleImpl.getService (ServiceHandleImpl.java:105)
на org.jvnet.hk2.internal.ServiceHandleImpl.getService (ServiceHandleImpl.java:87)
в org.glassfish.hk2 .runlevel.internal.CurrentTaskFuture $ QueueRunner.oneJob (CurrentTaskFuture.java:1162)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture $ QueueRunner.run (CurrentTaskFuture.java:1147)
на java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617)
в java.lang.Thread.run (Thread.java:745)
login.conf:
spnego-server {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="ax.keytab"
principal=development
storeKey=true;
};
krb5.conf
[libdefaults]
default_realm = LOC.COM
default_tkt_enctypes = aes256-cts aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc
default_tgs_enctypes = aes256-cts aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc
permitted_enctypes = aes256-cts aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc
forwardable = true
udp_preference_limit = 1
[realms]
LOC.COM = { KDC = ax.loc.com default_domain = LOC.COM }
[domain_realm]
.loc.com = LOC.COM
loc.com = LOC.COM
ax.loc.com = AX.LOC.COM
Непохожий предмет, который попался мне на глаза: вы говорите, что используете стеклянную рыбку v4.1, но в стеке упоминается стеклянная рыба v3. Это кажется подозрительным. – Gimby
Вы говорите о 'com.sun.enterprise.v3.server'? – jareeq
да, действительно. Я не знаю много о Glassfish, поэтому, возможно, это совершенно нормально, но мне это показалось мне довольно странным. Если вы поместите основную версию сервера в имя пакета, я бы предположил, что вы получаете пакет с v4 в нем при запуске Glassfish 4.x. Если бы я получил код с пакетом v3, я бы начал подозревать, что устаревшие серверные библиотеки используются. – Gimby