java8 转 java7,spnego.jar从Java 7切换到Java 8强制转换异常

我正在使用来自dfelix的spnego.jar和Glassfish 4.1作为web.xml中的过滤器.我在项目论坛上问过这个问题,但没有得到答复.

我想从Java 1.7.0_45切换到1.8.0_45(也试过其他1.8版本).打开测试环境后,我收到如下所示的错误.尝试了一个单独的案例,简单的Java也收到了案例异常.

我在1.7中使用相同的krb5.conf(下面),login.conf和keytab文件.

它与Java 1.8不兼容吗?

[glassfish 4.1] [SEVERE] [] [javax.enterprise.web] [tid: _ThreadID=16 _ThreadName=RunLevelControllerThread-1431425761516] [timeMillis: 1431425776202] [levelValue: 1000] [[

WebModule[/ax]Exception starting filter SpnegoHttpFilter

java.lang.InstantiationException

at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:135)

at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:5329)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:5943)

at 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)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747)

at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2286)

at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1932)

at com.sun.enterprise.web.WebApplication.start(WebApplication.java:139)

at 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)

at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:500)

at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:406)

at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:243)

at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:329)

at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:377)

at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:461)

at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:227)

at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:84)

at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2258)

at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:105)

at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87)

at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1162)

at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1147)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

Caused by: javax.servlet.ServletException: javax.security.auth.login.LoginException: java.lang.IllegalArgumentException: java.lang.ClassCastException: java.util.Vector cannot be cast to java.util.Hashtable

at sun.security.krb5.Config.get0(Config.java:287)

at sun.security.krb5.Config.getString0(Config.java:268)

at sun.security.krb5.Config.getAll(Config.java:240)

at sun.security.krb5.Config.getKDCList(Config.java:1030)

at sun.security.krb5.KdcComm.send(KdcComm.java:218)

at sun.security.krb5.KdcComm.send(KdcComm.java:200)

at sun.security.krb5.KrbAsReqBuilder.send(KrbAsReqBuilder.java:316)

at sun.security.krb5.KrbAsReqBuilder.action(KrbAsReqBuilder.java:361)

at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:776)

at com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:617)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:497)

at javax.security.auth.login.LoginContext.invoke(LoginContext.java:755)

at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)

at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)

at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)

at java.security.AccessController.doPrivileged(Native Method)

at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)

at javax.security.auth.login.LoginContext.login(LoginContext.java:587)

at net.sourceforge.spnego.SpnegoAuthenticator.(SpnegoAuthenticator.java:161)

at net.sourceforge.spnego.SpnegoHttpFilter.init(SpnegoHttpFilter.java:196)

at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)

at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:131)

at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:5329)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:5943)

at 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)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747)

at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2286)

at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1932)

at com.sun.enterprise.web.WebApplication.start(WebApplication.java:139)

at 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)

at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:500)

at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:406)

at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:243)

at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:329)

at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:377)

at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:461)

at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:227)

at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:84)

at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2258)

at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:105)

at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87)

at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1162)

at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1147)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值