Tag: web services

Spring MVC – 试图互相交互的2个不同的Web应用程序(安全性)

我们有2个不同的Web应用程序在同一个tomcat上运行。 webapp#1,webapp#2。 Webapp#1通过此服务方法连接到webapp#2: this.restTemplate.postForObject(url, request, responseType); webapp#2正在以下控制器中接收此请求: @RequestMapping(value = “/bla”, method = RequestMethod.POST) @ResponseStatus(value = HttpStatus.OK) @ResponseBody public ResponseDTO requestSomething(@RequestBody RequestDTO requestDTO, HttpServletRequest request) { return new ResponseDTO(“Hello”); } 现在,我们有一个安全要求,即我们在webapp#2中显示的这个控制器只接收来自webapp#1的请求。 实现这一目标有哪些替代方案? 我们是否必须从webapp#1在webapp#2中创建一个新会话? 如果是这样,凭证来自哪里? 我们应该就预定义的东西达成一 春季安全有没有办法解决这个问题? 谢谢!

无法通过angular2 web应用程序在发布请求中发送cookie

我正在同一个实例上运行两个不同的服务器,端口号不同,一个是节点(前端),另一个是tomcat(后端)。 示例: http:// localhost:4021是节点服务器(Angular2 Web应用程序), http:// localhost:8090是tomcat服务器(Java) 我能够在登录前从8090获取数据没有问题,但是当我登录时,2个cookie将通过后端设置到浏览器中。 每当我们对任何数据提出任何请求时,浏览器必须每次向请求标头中的服务器发送这两个cookie,但它们不会被发送。 我尝试在请求选项中发送“withCredentials:true”,但没有奏效。 let headersDefult = new Headers({‘Content-Type’:’application/json;charset=UTF-8′}); let requestOptions = new RequestOptions({ headers: headersDefult, withCredentials: true }); httpPOST(link, payload): Observable { let url = ‘http://localhost:8090/’; let self = this; return this.http.post(url, payload, requestOptions) .map(this.extractData) .catch(this.handleError); }

使用JAX-WS(服务器端)的SOAP标头

要求是在每个WebService请求中的Soap Message标头中包含安全属性。 一种方法是: @WebService @SOAPBinding ( style = javax.jws.soap.SOAPBinding.Style.DOCUMENT, use = javax.jws.soap.SOAPBinding.Use.LITERAL ) public interface UserService { @WebMethod public AuthenticateResponse authenticateUser(AuthenticateRequest request, @webParam(header=true) ApplicationCredential appcredential); @WebMethod public UserDetailResponse getUserDetail(UserDetailRequest request, @webParam(header=true) ApplicationCredential appcredential); } 但是,通过上述方法,我需要在每个操作中包含ApplicationCredential。 它看起来不太好。 我正在寻找是否可以在BaseRequest Class中包含这个ApplicationCredential类,并提到它将成为Soap Header的一部分(通过一些注释),这将非常有用。 例如: public class BaseRequest { @SomeAnnotation which states that Appcedential is a part of Soap Header […]

从HTTPS URL生成Java Web服务客户端

我正在为Web服务实现一个测试客户端。 该服务使用HTTPS,我正在尝试使用Eclipse向导生成客户端。 使用此URL Eclipse无法找到WSDL定义:向导会警告“所选的服务定义无效”。 而这个过程无法进行。 url是正确的,我validation它实现了一个.NET客户端,它的工作原理。 唯一的问题是SSL证书已过期。 如何在java中正确生成客户端?

Resteasy可以查看JAX-RS方法的参数类型吗?

我们使用Resteasy 3.0.9作为我们的JAX-RS Web服务,最近切换到3.0.19,我们开始看到很多RESTEASY002142: Multiple resource methods match request警告。 例如,我们有以下方法: @Path(“/{id}”) public String getSome(UUID id) @Path(“/{id}”) public String getSome(int id) 我不确定它在3.0.9中是如何工作的,可能,我们非常幸运,因为Resteasy似乎从所有候选人中选择了第一种方法(以及3.0.19种候选方法)。 一种解决方案是明确指定正则表达式: @Path(“/{id : [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}}”) 但有没有办法以某种方式告诉Resteasy查看方法参数并自动构造适当的正则表达式?

为什么服务提供商返回SOAP Webservice错误?

我正在使用由webservicex服务器开发的SOAP web-service (从这里下载)来开发一个以IP地址作为输入的国家定位器应用程序。 使用wsimport导入jar文件和java文件。 现在,开发了一个java应用程序,它通过将输入作为IP地址返回国家名称。 一切都按计划工作,没有任何语法错误。 但是在执行java程序时,它返回了一个我无法追溯的错误(我是学习者)。 我不确定它是WS或Jar文件的问题。 错误如下: Exception in thread “main” com.sun.xml.internal.ws.fault.ServerSOAPFaultException: Client received SOAP Fault from server: System.Web.Services.Protocols.SoapException: Server was unable to process request. —> System.NullReferenceException: Object reference not set to an instance of an object. at WebserviceX.Service.Adapter.IPAdapter.CheckIP(String IP) at WebserviceX.Service.GeoIPService.GetGeoIP(String IPAddress) — End of inner exception stack trace — Please see […]

使用@Produces用于不同的方法

我正在学习Jersey webservices并且遇到了@Produces的用法,所以为了理解它,我写了一个这样的小程序: @Path(“users/{username: [a-zA-Z][a-zA-Z_0-9]*}”) public class UserResource { @GET @Produces(“text/plain”) public String getUser(@PathParam(“username”) String userName) { return “Hello ” + userName; } @GET @Produces({“application/xml”, “application/json”}) public String doGetAsXmlOrJson(@PathParam(“username”) String userName) { return “Hello World”; } } 当我将请求作为http://localhost:9998/users/Java传递,并且标题为“Accept:application / json”时,我希望输出为Hello World 。 但不是这样,我将它作为Hello Java 。 我正在使用Chrome浏览器的Postman客户端对此进行测试。 现在如果我删除上面程序中的getUser方法,那么我得到输出为Hello World 。 你能否告诉我为什么即使我设置了Accept标头,请求也不会转到我的doGetAsXmlOrJson方法? 更新:添加更多详细信息 – 使用Jersey文档中提到的以下代码部署该程序: import java.io.IOException; import […]

编译共享公共模式的多个WSDL

我有两个网络服务。 两者都是由应用程序实现的,因此有一些共同的对象。 我有一个使用两个web服务的GWT前端。 在这里,当我使用maven wsimport生成webserive类时。 我在两个不同的包中得到了这些相同类的副本。 我不想创建这些类的重复项。 所以创建了这些类的绑定。 但每次Web服务发生任何变化时。 我已经调整了绑定中定义的类,我想避免。 我的问题是。 有没有更好的方法来处理这些常见的类?

调用webservice的问题 – javax.xml.ws.WebServiceException和类没有名称的属性

我有一个wsdl文件,很多xsd文件,jxb绑定文件。 我使用Apache CXF cxf-codegen-plugin创建了一个Web服务客户端。 创建Java类时没有任何错误。 但是当我尝试调用任何生成的方法时,我得到一个exception: Exception in thread “main” javax.xml.ws.WebServiceException: class com.amadeus.xml.pnracc_11_1_1a.PNRReply do not have a property of the name {http://xml.amadeus.com/PNRACC_11_1_1A}PNR_Reply 我像这样调用webservice方法(不要担心空值): AmadeusWebServices aws = new AmadeusWebServices(); aws.getAmadeusWebServicesPort().fareMasterPricerCalendar(null, null); 堆栈跟踪: Exception in thread “main” javax.xml.ws.WebServiceException: class com.amadeus.xml.pnracc_11_1_1a.PNRReply do not have a property of the name {http://xml.amadeus.com/PNRACC_11_1_1A}PNR_Reply at com.sun.xml.internal.ws.client.sei.ValueSetter$AsyncBeanValueSetter.(ValueSetter.java:165) at com.sun.xml.internal.ws.client.sei.ValueSetterFactory$AsyncBeanValueSetterFactory.get(ValueSetterFactory.java:67) at com.sun.xml.internal.ws.client.sei.SEIMethodHandler.buildResponseBuilder(SEIMethodHandler.java:163) at com.sun.xml.internal.ws.client.sei.AsyncMethodHandler.(AsyncMethodHandler.java:121) […]

在Java 1.5中编译WS客户端 – 缺少类似WebService的注释

我正在开发一个应用程序,它应该作为Web服务的客户端。 我使用wsimport实用程序生成了基于WSDL文件的源文件。 它在我的JDK 1.7开发机器上工作正常(例如它编译并运行良好)。 我甚至无法在测试环境中编译应用程序,我有JDK 1.5。 我得到了一堆如下错误: Cannot find symbol: class WebMethod 怀疑问题是JDK的较小版本。 我该怎么做才能解决这个问题,例如更新应用程序以使其与Java 1.5兼容? 它必须运行独立的控制台应用程序。