0

我正在尝试编写代码以编程方式保护 WSO2 Carbon 服务器上的服务。我已经充分解构了 JSP 安全代码,知道它使用 SecurityAdminService 来实际执行安全操作。我已成功向 SecurityAdminService 发送消息,但收到以下错误:

<soapenv:Fault xmlns:axis2ns1="http://schemas.xmlsoap.org/soap/envelope/">
    <faultcode>axis2ns1:50977</faultcode>
    <faultstring>Access Denied. Please login first.</faultstring>
    <detail/>
</soapenv:Fault>

这并不出人意料,但我想不出任何方法可以在此请求中传递用户凭据。JSP 代码在这里没有提供太多帮助,因为它通过 cookie 进行登录和凭据处理。有没有办法在请求的同时处理授权?还是我只需要复制 JSP 页面的功能并 POST 到登录 URL 并将会话 cookie 复制到请求中?

4

1 回答 1

2

在调用任何管理服务之前,您必须首先调用 AuthenticationAdmin 服务并让自己作为有效用户进行身份验证(针对 carbon 用户存储)。您可以轻松地使用 AuthenticationAdminStub 调用其登录方法,提供您的用户名、密码和后端服务器的主机名/IP 来完成此操作。然后,您将能够成功地继续您已经实施的内容。

问候, 普拉巴斯

于 2012-08-01T03:33:43.303 回答