我正在尝试编写代码以编程方式保护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复制到请求中?
答案 0 :(得分:2)
在调用任何管理服务之前,您必须首先调用AuthenticationAdmin服务并作为有效用户进行身份验证(针对碳用户界面)。您可以轻松使用AuthenticationAdminStub调用其登录方法,提供您的用户名,密码和后端服务器的主机名/ IP以完成此操作。然后,您将能够成功地继续您已经实施的内容。
此致 Prabath