Я попытался создать собственную безопасность и политику, как указано здесь:
http://download.oracle.com/docs/cd/E15523_01/relnotes.1111/e10132/owsm.htm#CIADFGGC
когда я запускаю пользовательское утверждение клиента службы выполняется, возвращается успешно.
public IResult execute(IContext context) throws WSMException {
try {
System.out.println("public execute");
IAssertionBindings bindings =
((SimpleAssertion)(this.assertion)).getBindings();
IConfig config = bindings.getConfigs().get(0);
IPropertySet propertyset = config.getPropertySets().get(0);
String valid_ips =
propertyset.getPropertyByName("valid_ips").getValue();
String ipAddr = ((IMessageContext)context).getRemoteAddr();
IResult result = new Result();
System.out.println("valid_ips "+valid_ips);
if (valid_ips != null && valid_ips.trim().length() > 0) {
String[] valid_ips_array = valid_ips.split(",");
boolean isPresent = false;
for (String valid_ip : valid_ips_array) {
if (ipAddr.equals(valid_ip.trim())) {
isPresent = true;
}
}
System.out.println("isPresent "+isPresent);
if (isPresent) {
result.setStatus(IResult.SUCCEEDED);
} else {
result.setStatus(IResult.FAILED);
result.setFault(new WSMException(WSMException.FAULT_FAILED_CHECK));
}
} else {
result.setStatus(IResult.SUCCEEDED);
}
System.out.println("result "+result);
System.out.println("public execute complete");
return result;
} catch (Exception e) {
System.out.println("Exception e");
e.printStackTrace();
throw new WSMException(WSMException.FAULT_FAILED_CHECK, e);
}
}
Вывод на консоль:
публичное исполнение valid_ips
127.0.0.1,192.168.1.1 isPresent true результат Успешное публичное выполнение
полный
но веб-служба выдает GenericFault.
Аргументы: [недействительно]
Неисправность: GenericFault: общая ошибка
Понятия не имею, что может быть не так, есть идеи?
вот полная трассировка стека:
Исключение в теме "главная"
javax.xml.ws.soap.SOAPFaultException:
GenericFault: общая ошибка в
com.sun.xml.internal.ws.fault.SOAP12Fault.getProtocolException (SOAP12Fault.java:210)
в
com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException (SOAPFaultBuilder.java:119)
в
com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke (SyncMethodHandler.java:108)
в
com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke (SyncMethodHandler.java:78)
в
com.sun.xml.internal.ws.client.sei.SEIStub.invoke (SEIStub.java:107)
на $ Proxy30.sayHello (неизвестный источник)
в
creditproxy.CreditRatingSoap12HttpPortClient.main (CreditRatingSoap12HttpPortClient.java:21)
Вызванный:
javax.xml.ws.soap.SOAPFaultException:
GenericFault: общая ошибка в
weblogic.wsee.jaxws.framework.jaxrpc.TubeFactory $ JAXRPCTube.processRequest (TubeFactory.java:203)
в
weblogic.wsee.jaxws.tubeline.FlowControlTube.processRequest (FlowControlTube.java:99)
в
com.sun.xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:604)
в
com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:563)
в
com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:548)
в
com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:445)
в
com.sun.xml.ws.server.WSEndpointImpl $ 2.Process (WSEndpointImpl.java:275)
в
com.sun.xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle (HttpAdapter.java:454)
в
com.sun.xml.ws.transport.http.HttpAdapter.handle (HttpAdapter.java:250)
в
com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle (ServletAdapter.java:140)
в
weblogic.wsee.jaxws.HttpServletAdapter $ AuthorizedInvoke.run (HttpServletAdapter.java:319)
в
weblogic.wsee.jaxws.HttpServletAdapter.post (HttpServletAdapter.java:232)
в
weblogic.wsee.jaxws.JAXWSServlet.doPost (JAXWSServlet.java:310)
в
javax.servlet.http.HttpServlet.service (HttpServlet.java:727)
в
weblogic.wsee.jaxws.JAXWSServlet.service (JAXWSServlet.java:87)
в
javax.servlet.http.HttpServlet.service (HttpServlet.java:820)
в
weblogic.servlet.internal.StubSecurityHelper $ ServletServiceAction.run (StubSecurityHelper.java:227)
в
weblogic.servlet.internal.StubSecurityHelper.invokeServlet (StubSecurityHelper.java:125)
в
weblogic.servlet.internal.ServletStubImpl.execute (ServletStubImpl.java:292)
в
weblogic.servlet.internal.TailFilter.doFilter (TailFilter.java:26)
в
weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:56)
в
oracle.dms.wls.DMSServletFilter.doFilter (DMSServletFilter.java:326)
в
weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:56)
в
weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.run (WebAppServletContext.java:3592)
в
weblogic.security.acl.internal.AuthenticatedSubject.doAs (AuthenticatedSubject.java:321)
в
weblogic.security.service.SecurityManager.runAs (SecurityManager.java:121)
в
weblogic.servlet.internal.WebAppServletContext.securedExecute (WebAppServletContext.java:2202)
в
weblogic.servlet.internal.WebAppServletContext.execute (WebAppServletContext.java:2108)
в
weblogic.servlet.internal.ServletRequestImpl.run (ServletRequestImpl.java:1432)
в
weblogic.work.ExecuteThread.execute (ExecuteThread.java:201)
в
weblogic.work.ExecuteThread.run (ExecuteThread.java:173)
Процесс завершен с кодом выхода 1.