我使用Maven插件(org.codehaus.mojo
在target/generated source/wsdl2java/com中生成文件。公司。项目包括:
在我的项目中,我在一个同名的包中创建了foSoapBindingImpl.java
在这个java实现中添加我的自定义代码。
此Web服务已准备好在生产中使用。
所以,今天我在我的客户端上添加了基本身份验证(头=
如何在my Axis Web服务中添加此基本身份验证的检查?
最简单的方法是在WSDL中添加SOAP头以进行身份验证。例如,用户名和密码可以作为新元素添加到WSDL文件的新SOAP头下,并重新生成源文件。
`<xs:element name="UsernameToken">
<xs:complexType>
<xs:sequence>
<xs:element ref="Username"/>
<xs:element ref="Password" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Id" type="xs:ID"/>
</xs:complexType></xs:element>`
使用WSDL中的上述头文件,如果我们生成源文件,我们可以轻松地在impl中添加身份验证逻辑。
然后可以在*Impl中验证用户名和密码。java类。
如何在my Axis Web服务中添加此基本身份验证的检查?
Anwser:可以从WebServiceContext
@WebService
public class Service{
//Injected by whatever container you are using
@Resource
WebServiceContext wctx;
@WebMethod
public Integer fooServiceLocator(int x, int y){
//Get The Message Context
MessageContext mctx = wctx.getMessageContext();
//Grab the HTTP Request Headers
Map<Object, Object> object = (Map<Object, Object>) mctx.get(MessageContext.HTTP_REQUEST_HEADERS);
//Grab the Authorization Values
List<String> basicCredentials = (List<String>) object.get("Authorization");
//Print out credentials
basicCredentials.forEach(System.out::println);
//Do a meaningful check of the credentials
上面的代码解释了如何从web服务内部检索基本凭据。我的建议是让Servlet或EJB容器处理应用程序所需的任何安全性。通过让容器处理您的安全性,您的代码在环境之间变得更加可移植。
Axis安全部分'验证调用者'提到:
客户端可以使用客户端证书或HTTP基本身份验证来验证自己。
后者太弱,在非加密通道上不可信任,但在HTTPS上工作。
当SOAP消息发布到endpoint时,MessageContext
类将配置发送者的用户名和密码*
请参见此处的示例。
使用适当的getter查看这些值。请注意,Axis尚未与ServletAPI身份验证内容集成。
请参阅此答案中的getter示例。
同事们,我正在尝试将基本身份验证添加到我的SOAPWS(SpringBootPPoject)中。例如: 正如我所说的,我想将基本身份验证添加到soapweb服务中。据我所知,我需要添加下一个依赖项: 但如果我添加此依赖项并调用,则会发生异常: 异常在线程"main"java.lang.IllegalArgumentExc0019:无法实例化接口org.springframework.boot.Sp
我已经发送了一个soap服务,我必须发送基本的身份验证(用户名和密码)以及qaf中的请求和头值。我尝试在应用程序中添加用户名和密码。属性文件,但服务引发内部服务器错误。请指导我怎么做。
我最近将一个Spring Boot应用程序从V1.5更新到V2.0.3。它是一个具有作为RESTendpoint公开的方法的应用程序,并通过基本的HTTP身份验证加以保护。用户名和密码硬编码在应用程序加载的属性文件中。 自更新以来,响应时间增加了近200ms,处理请求的98%时间花费在BasicAuthenticationFilter.doFilter()中。 更具体地说,需要花费时间对请求中的密
问题内容: 我有一个现有的angularjs代码,可以进行HTTP GET。下面提取的是控制器内部的一些相关代码。 我想将HTTP基本身份验证添加到HTTP GET。用户名为,密码为。如何才能做到这一点? 问题答案: 因为在基本身份验证中,用户名和密码由base64解码。您首先需要找到一个图书馆来完成这项工作。 https://github.com/ninjatronic/angular- bas
问题内容: 如何在AngularJs中使用基本身份验证?我已经在Google上搜索了,但是资源对我来说不起作用。我 非常 新AngularJS 问题答案: 假设您的html定义如下: 您可以使用以下基本身份验证将后端连接到rest api: 请注意,此代码的大部分是方法。如果不需要支持IE9及更低版本,则可以将其替换为本地JS实现- atob()和btoa():https : //develope
在斯威格中有一个.BasicAuth(“基本”)。我取消注释的描述(“基本HTTP授权”)行。 但是,当尝试使用其中一个endpoint时,单击“试用!”按钮时,系统会提示我登录。无论我在这个框中放了什么(用户名和密码框),我都无法运行或测试endpoint,因为我未经授权。我需要在 SwaggerConfig.cs 文件或其他位置执行哪些操作才能进行测试? 我使用的是.Net Framework