问题描述
问题:我要做一个WebService下面简称ServiceA,在ServiceA里要通过JAX-WS调用一个现有系统的WEBService下面简称ServiceBServeicB的认证方式是NTLM在ServiceA中我通过继承java.net.Authenticator做了一个自己的认证的Class详细代码如下publicclassNTLMAuthextendsAuthenticator{privateStringuser;privateStringpassword;publicNTLMAuth(Stringuser,Stringpassword){super();this.user=user;this.password=password;}@OverrideprotectedPasswordAuthenticationgetPasswordAuthentication(){returnnewPasswordAuthentication(user,password.toCharArray());}}然后在调用ServiceB的方法之前,显示调用NTLMAuthmyAuth=newNTLMAuth(userName,userPasswd);Authenticator.setDefault(myAuth);正常认证成功,并取得了我想取到的结果现在的问题是,我做自己的ServiceA并发布到Weblogic服务器上后一旦我有一次认证成功后,接下来第二次,第三次,我无论输入什么用户名,密码都能正常认证成功,取到数据调试以后,发觉NTLMAuth的getPasswordAuthentication方法只有第一次认证的时候调用了接下来第二次,第三次认证的时候,都不会调用这个方法,只是用原先第一次调用的用户名和方法了,除非再启动Webloigc有什么方法,可以让每次调用ServiceA的方法后,都去执行认证吗?望知道解决方案的同仁,不吝赐教,不胜感激~~~~
解决方案
解决方案二:
没有人知道么?人工顶一下
解决方案三:
该回复于2010-12-30 16:02:10被版主删除
解决方案四:
再顶一下,看来CSDN的人气越来越弱了。