Java 手动Weblogic基本身份验证

Java 手动Weblogic基本身份验证,java,web-services,authentication,soap,weblogic,Java,Web Services,Authentication,Soap,Weblogic,我有一个Web服务(JAX-WS)、一个WSDL、一个桌面应用程序客户端和一个WebLogic12C服务器。我正在尝试在客户机->Web服务->Weblogic->Active Directory之间实现基本身份验证。当从客户机向Web服务发送SOAP消息时,我可以通过将用户名/密码放在SOAP消息的头中来设置所有内容 Weblogic自动提取该标题信息,并根据Active Directory对用户进行身份验证。伟大的但眼前的问题是: 如果我不在头中发送凭据,它不会进行身份验证,但允许匿名用户完

我有一个Web服务(JAX-WS)、一个WSDL、一个桌面应用程序客户端和一个WebLogic12C服务器。我正在尝试在
客户机->Web服务->Weblogic->Active Directory
之间实现基本身份验证。当从客户机向Web服务发送SOAP消息时,我可以通过将用户名/密码放在SOAP消息的头中来设置所有内容

Weblogic自动提取该标题信息,并根据Active Directory对用户进行身份验证。伟大的但眼前的问题是:

  • 如果我不在头中发送凭据,它不会进行身份验证,但允许匿名用户完全访问。
    • 我需要发送正确的错误消息,并防止匿名使用
  • 如果我发送的凭据无效它会在客户端引发
    套接字读取
    异常。
    • 我需要返回一个正确的错误消息;而不是让它轰炸客户
  • 我是否应发送有效凭证,但无效授权;我在每个无状态EJB方法上都设置了
    @RolesAllowed({“SomeRole”})
    。它在房屋的Web服务端抛出一个安全vilotion异常。
    • 我需要以某种方式捕获此异常,并将正确的消息发送回客户端

  • 有没有一种方法可以在不定制Weblogic域的情况下完成所有这些工作?感觉上,我需要手动控制Weblogic的基本身份验证,但随后我感觉我正在步进Weblogic的
    JAAS登录模块
    ——它定制了域,我希望避免

    使用处理程序拦截传入和传出的请求。

    您能举个例子吗?从SOAPHandler继承一个类,并重写handleFault、getHeaders和handleMessage以处理SOAP错误、SOAP消息头和SOAP消息体。