如何在调用一个特定的Web服务时覆盖身份验证?

时间:2017-04-03 06:43:37

标签: web-services security websphere rad

我使用许多Web服务与SAP通信。这些服务是使用RAD中的向导生成的。标准登录在部署描述的WS绑定中定义。

SAP团队现在希望我使用当前用户的登录详细信息调用一个特定服务,而不是使用标准登录。系统将提示用户输入登录详细信息,这些信息将存储在会话中。

我原以为我需要使用Sub diversestickersKoole() Dim xlApp As Object Dim xlWorkBook As Object Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True Set xlWorkBook = xlApp.Workbooks.Open("V:\Oliedocs\Koole\Stickers Scheepstanks Koole.xltm", True, False) xlWorkBook.Activate Set xlApp = Nothing Set xlWorkBook = Nothing End Function ,但我无法立即查看如何访问用户的会话。

我可以手动创建SOAP请求并自己设置身份验证,但我宁愿使用该向导进行所有服务。

在运行时覆盖Web服务身份验证的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

这就是我要找的:https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere.nd.iseries.doc/ae/twbs_confighttpbasicauthprog.html

Properties prop = new Properties(); 
InitialContext ctx = new InitialContext(prop); 
Service service = (Service)ctx.lookup("java:comp/env/service/StockQuoteService"); 
QName portQname = new QName("http://httpchannel.test.wsfvt.ws.ibm.com", "StockQuoteHttp"); 
StockQuote sq = (StockQuote)service.getPort(portQname, StockQuote.class); 
((javax.xml.rpc.Stub) sq)._setProperty(javax.xml.rpc.Stub.USERNAME_PROPERTY, "myUser");
((javax.xml.rpc.Stub) sq)._setProperty(javax.xml.rpc.Stub.PASSWORD_PROPERTY, "myPwd");