如何在Apache Axis Web Service(SOAP)中添加基本身份验证?

sgr*_*lon 7 java axis soap basic-authentication maven

我使用Maven插件(org.codehaus.mojo> axistools-maven-plugin)+一个WSDL文件来生成Soap Web服务.

目标/ generated-source/wsdl2java/com.comp.proj中的Genarated文件是:

  • Foo.java(java界面)
  • FooServiceLocator.java
  • FooSoapBindingImpl.java(java空实现)
  • FooSoapBindingSkeleton.java
  • FooSoapBindingStub.java

在我的项目中,我FooSoapBindingImpl.java在一个具有相同名称的包中创建+在此java实现中添加我的自定义代码.

此Web服务已准备好用于生产.

所以,今天我在我的客户端添加基本身份验证(header => Authorization:Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ ==)

如何在我的Axis Web服务中添加对此基本身份验证的检查?

Von*_*onC 1

Axis 安全部分‘对调用者进行身份验证’ ”提到:

客户端可以使用客户端证书或 HTTP 基本身份验证来验证自己的身份。
后者太弱了,在非加密通道上不可信,但可以通过 HTTPS 运行。

当 SOAP 消息发布到端点时,该类MessageContext将配置发送者的用户名和密码;*

请参阅此处的示例

使用适当的 getter 来查看这些值。请注意,Axis 尚未与 servlet API 身份验证内容集成。

请参阅此答案中的 getter 示例