2

我需要从中获取用户名和密码HttpServletRequest来处理基本身份验证。我拥有的是CXF端点和基本的身份验证拦截器。HttpServletRequest我得到这样的:

public void handleMessage(Message message)            
        throws Fault {
    HttpServletRequest request = (HttpServletRequest) message.get(AbstractHTTPDestination.HTTP_REQUEST); 

}

当我尝试调试代码时,我看到:

request.getAuthType() is null
request.getRemoteUser() is null

我通过 Soap UI 的请求发送的用户名和密码。所以问题是我如何从请求中获取用户名和密码?

编辑

标题如下所示:

POST http://localhost:8011/GradIrelandUserRegistration HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Authorization: Basic UGF1bGl1czpQYXVsaXVzMTIz
Content-Length: 3170
Host: localhost:8011
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

他们说授权是基本的,但是为什么调用request.getAuthType()返回 null 呢?

4

2 回答 2

3

我能够弄清楚我自己。在 Soap UI 中,我需要将身份验证类型更改为:

Preemptive

然后使用:

AuthorizationPolicy policy = (AuthorizationPolicy) message.get(AuthorizationPolicy.class.getName());

现在我可以从策略对象中获取用户名和密码。

于 2012-07-30T08:50:06.227 回答
0

这可能对您有所帮助 。我对 SOAP 数据解析有点陌生,所以如果不工作,请告诉我一个简短的问题。. 另请检查此J-Query 插件以使用数据库解析 SOAP 服务。检查这个堆栈溢出

于 2012-07-30T08:34:46.973 回答