{"id":26030,"date":"2014-06-03T08:55:38","date_gmt":"2014-06-03T05:55:38","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=26030"},"modified":"2018-10-09T23:33:00","modified_gmt":"2018-10-09T20:33:00","slug":"adding-ws-security-over-soap-using-apache-camel","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html","title":{"rendered":"Adding WS-Security over soap using Apache Camel"},"content":{"rendered":"<p>WS-Security (Web Services Security) is a protocol which allows you to secure your soap web services. The client, who makes the soap request, has to provide a login and a password in the soap header.<\/p>\n<p>The server receives the soap request, checks the credentials and validates or not the request. With Apache Camel, it is easy to work with soap web services (especially if you use Apache CXF), but handling with WS-Security can be tricky.<\/p>\n<p>The idea is to create an xml template with all required information (including login and password) and add the template to the soap header.<\/p>\n<pre class=\"brush:java\">public void addSoapHeader(Exchange exchange,String soapHeader){\r\n\r\n        List&lt;SoapHeader&gt; soapHeaders = CastUtils.cast((List&lt;?&gt;) exchange.getIn().getHeader(Header.HEADER_LIST));\r\n        SoapHeader newHeader;\r\n\r\n        if(soapHeaders == null){\r\n\r\n            soapHeaders = new ArrayList&lt;SoapHeader&gt;();\r\n        }\r\n        \r\n        try {\r\n            newHeader = new SoapHeader(new QName(\"soapHeader\"), DOMUtils.readXml(new StringReader(soapHeader)).getDocumentElement());\r\n            newHeader.setDirection(Direction.DIRECTION_OUT);\r\n\r\n            soapHeaders.add(newHeader);\r\n\r\n            exchange.getIn().setHeader(Header.HEADER_LIST, soapHeaders);\r\n\r\n        } catch (Exception e) {\r\n            \/\/log error\r\n        }\r\n    }<\/pre>\n<p>Apache Camel uses an <code>Exchange<\/code> interface which has methods to retrieve or update headers.\u00a0The <code>soapHeader<\/code> parameter is a string containing the xml template.<\/p>\n<p>We retrieve the current headers and we add a new header named <code>soapHeader<\/code>. We convert the <code>soapHeader<\/code> property from string to XML thanks to the <code>DOMUtils<\/code> class.<\/p>\n<p>The <code>newHeader.setDirection(Direction.DIRECTION_OUT)<\/code> instruction means that the header will be applied to a request either leaving a consumer endpoint or entering a producer endpoint (that is, it applies to a WS request message propagating through a route).<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>Now let\u2019s create the xml template and call the <code>addSoapHeader<\/code> method:<\/p>\n<pre class=\"brush:java\">public void addWSSESecurityHeader(Exchange exchange,String login,String password){\r\n\r\n        String soapHeader = \"&lt;?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?&gt;&lt;wsse:Security xmlns:wsse=\\\"http:\/\/docs.oasis-open.org\/wss\/2004\/01\/oasis-200401-wss-wssecurity-secext-1.0.xsd\\\"+ \r\n        \"xmlns:wsu=\\\"http:\/\/docs.oasis-open.org\/wss\/2004\/01\/oasis-200401-wss-wssecurity-utility-1.0.xsd\\\"&gt;&lt;wsse:UsernameToken wsu:Id=\\\"UsernameToken-50\\\"&gt;&lt;wsse:Username&gt;\"\r\n                + login\r\n                + \"&lt;\/wsse:Username&gt;&lt;wsse:Password Type=\\\"http:\/\/docs.oasis-open.org\/wss\/2004\/01\/oasis-200401-wss-username-token-profile-1.0#PasswordText\\\"&gt;\"\r\n                + password + \"&lt;\/wsse:Password&gt;&lt;\/wsse:UsernameToken&gt;&lt;\/wsse:Security&gt;\";\r\n\r\n        \/\/Add wsse security header to the exchange\r\n\r\n        addSoapHeader(exchange, soapHeader);\r\n\r\n    }<\/pre>\n<p>As we can see, we need two namespaces in our xml (to handle with WS-Security):<\/p>\n<ul>\n<li><a href=\"http:\/\/docs.oasis-open.org\/wss\/2004\/01\/oasis-200401-wss-wssecurity-secext-1.0.xsd\">http:\/\/docs.oasis-open.org\/wss\/2004\/01\/oasis-200401-wss-wssecurity-secext-1.0.xsd<\/a><\/li>\n<li><a href=\"http:\/\/docs.oasis-open.org\/wss\/2004\/01\/oasis-200401-wss-wssecurity-utility-1.0.xsd\">http:\/\/docs.oasis-open.org\/wss\/2004\/01\/oasis-200401-wss-wssecurity-utility-1.0.xsd<\/a><\/li>\n<\/ul>\n<p>We can then use interesting tags into our xml:<\/p>\n<ul>\n<li>wsse\u00a0:UsernameToken\u00a0: Includes both username and password information<\/li>\n<li>wsse\u00a0:Username\u00a0: Username required for authentication<\/li>\n<li>wsse\u00a0:Password\u00a0: Password required for authentication<\/li>\n<\/ul>\n<p>Next we just have to call our method <code>addSoapHeader<\/code>to add our xml into the soap header. Here\u2019s the full code with a complete Apache Camel route:<\/p>\n<pre class=\"brush:java\">package com.example.test;\r\n\r\nimport java.io.StringReader;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\nimport javax.xml.namespace.QName;\r\nimport org.apache.camel.Exchange;\r\nimport org.apache.camel.util.CastUtils;\r\nimport org.apache.cxf.binding.soap.SoapHeader;\r\nimport org.apache.cxf.headers.Header;\r\nimport org.apache.cxf.headers.Header.Direction;\r\nimport org.apache.cxf.helpers.DOMUtils;\r\n\r\npublic class MyRoute extends RouteBuilder {\r\n\r\n    public void addSoapHeader(Exchange exchange,String soapHeader){\r\n\r\n        List&lt;SoapHeader&gt; soapHeaders = CastUtils.cast((List&lt;?&gt;) exchange.getIn().getHeader(Header.HEADER_LIST));\r\n        SoapHeader newHeader;\r\n\r\n        if(soapHeaders == null){\r\n\r\n            soapHeaders = new ArrayList&lt;SoapHeader&gt;();\r\n        }\r\n        \r\n        try {\r\n            newHeader = new SoapHeader(new QName(\"soapHeader\"), DOMUtils.readXml(new StringReader(soapHeader)).getDocumentElement());\r\n            newHeader.setDirection(Direction.DIRECTION_OUT);\r\n\r\n            soapHeaders.add(newHeader);\r\n\r\n            exchange.getIn().setHeader(Header.HEADER_LIST, soapHeaders);\r\n\r\n        } catch (Exception e) {\r\n            \/\/log error\r\n        }\r\n    }\r\n\r\n    public void addWSSESecurityHeader(Exchange exchange,String login,String password){\r\n\r\n        String soapHeader = \"&lt;?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?&gt;&lt;wsse:Security xmlns:wsse=\\\"http:\/\/docs.oasis-open.org\/wss\/2004\/01\/oasis-200401-wss-wssecurity-secext-1.0.xsd\\\"+ \r\n        \"xmlns:wsu=\\\"http:\/\/docs.oasis-open.org\/wss\/2004\/01\/oasis-200401-wss-wssecurity-utility-1.0.xsd\\\"&gt;&lt;wsse:UsernameToken wsu:Id=\\\"UsernameToken-50\\\"&gt;&lt;wsse:Username&gt;\"\r\n                + login\r\n                + \"&lt;\/wsse:Username&gt;&lt;wsse:Password Type=\\\"http:\/\/docs.oasis-open.org\/wss\/2004\/01\/oasis-200401-wss-username-token-profile-1.0#PasswordText\\\"&gt;\"\r\n                + password + \"&lt;\/wsse:Password&gt;&lt;\/wsse:UsernameToken&gt;&lt;\/wsse:Security&gt;\";\r\n\r\n        \/\/Add wsse security header to the exchange\r\n\r\n        addSoapHeader(exchange, soapHeader);\r\n\r\n    }\r\n\r\n    @Override\r\n    public void configure() throws Exception {\r\n        from(\"endpointIn\")\r\n        .process(new Processor(){\r\n            @Override\r\n            public void process(Exchange exchange) throws Exception {\r\n                addWSSESecurityHeader(exchange, \"login\",\"password\");\r\n            }\r\n        })\r\n        .to(\"endointOut\") ;\r\n    }\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>WS-Security (Web Services Security) is a protocol which allows you to secure your soap web services. The client, who makes the soap request, has to provide a login and a password in the soap header. The server receives the soap request, checks the credentials and validates or not the request. With Apache Camel, it is &hellip;<\/p>\n","protected":false},"author":571,"featured_media":52,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[357],"class_list":["post-26030","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-apache-camel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Adding WS-Security over soap using Apache Camel<\/title>\n<meta name=\"description\" content=\"WS-Security (Web Services Security) is a protocol which allows you to secure your soap web services. The client, who makes the soap request, has to\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Adding WS-Security over soap using Apache Camel\" \/>\n<meta property=\"og:description\" content=\"WS-Security (Web Services Security) is a protocol which allows you to secure your soap web services. The client, who makes the soap request, has to\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2014-06-03T05:55:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-10-09T20:33:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-camel-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Michael Desigaud\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Desigaud\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html\"},\"author\":{\"name\":\"Michael Desigaud\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/3c2d217ad8df8800422de8e867076394\"},\"headline\":\"Adding WS-Security over soap using Apache Camel\",\"datePublished\":\"2014-06-03T05:55:38+00:00\",\"dateModified\":\"2018-10-09T20:33:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html\"},\"wordCount\":285,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-camel-logo.jpg\",\"keywords\":[\"Apache Camel\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html\",\"name\":\"Adding WS-Security over soap using Apache Camel\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-camel-logo.jpg\",\"datePublished\":\"2014-06-03T05:55:38+00:00\",\"dateModified\":\"2018-10-09T20:33:00+00:00\",\"description\":\"WS-Security (Web Services Security) is a protocol which allows you to secure your soap web services. The client, who makes the soap request, has to\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-camel-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-camel-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/adding-ws-security-over-soap-using-apache-camel.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Adding WS-Security over soap using Apache Camel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/3c2d217ad8df8800422de8e867076394\",\"name\":\"Michael Desigaud\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d26694af2ce1a9ba7ee619ef26f2bb836f7d1f6bceca201716403965c5d3d15c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d26694af2ce1a9ba7ee619ef26f2bb836f7d1f6bceca201716403965c5d3d15c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d26694af2ce1a9ba7ee619ef26f2bb836f7d1f6bceca201716403965c5d3d15c?s=96&d=mm&r=g\",\"caption\":\"Michael Desigaud\"},\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/michael-desigaud\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Adding WS-Security over soap using Apache Camel","description":"WS-Security (Web Services Security) is a protocol which allows you to secure your soap web services. The client, who makes the soap request, has to","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html","og_locale":"en_US","og_type":"article","og_title":"Adding WS-Security over soap using Apache Camel","og_description":"WS-Security (Web Services Security) is a protocol which allows you to secure your soap web services. The client, who makes the soap request, has to","og_url":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2014-06-03T05:55:38+00:00","article_modified_time":"2018-10-09T20:33:00+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-camel-logo.jpg","type":"image\/jpeg"}],"author":"Michael Desigaud","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Michael Desigaud","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html"},"author":{"name":"Michael Desigaud","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/3c2d217ad8df8800422de8e867076394"},"headline":"Adding WS-Security over soap using Apache Camel","datePublished":"2014-06-03T05:55:38+00:00","dateModified":"2018-10-09T20:33:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html"},"wordCount":285,"commentCount":2,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-camel-logo.jpg","keywords":["Apache Camel"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html","url":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html","name":"Adding WS-Security over soap using Apache Camel","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-camel-logo.jpg","datePublished":"2014-06-03T05:55:38+00:00","dateModified":"2018-10-09T20:33:00+00:00","description":"WS-Security (Web Services Security) is a protocol which allows you to secure your soap web services. The client, who makes the soap request, has to","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-camel-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-camel-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/adding-ws-security-over-soap-using-apache-camel.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Adding WS-Security over soap using Apache Camel"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/3c2d217ad8df8800422de8e867076394","name":"Michael Desigaud","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d26694af2ce1a9ba7ee619ef26f2bb836f7d1f6bceca201716403965c5d3d15c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d26694af2ce1a9ba7ee619ef26f2bb836f7d1f6bceca201716403965c5d3d15c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d26694af2ce1a9ba7ee619ef26f2bb836f7d1f6bceca201716403965c5d3d15c?s=96&d=mm&r=g","caption":"Michael Desigaud"},"url":"https:\/\/www.javacodegeeks.com\/author\/michael-desigaud"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/26030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/571"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=26030"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/26030\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/52"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=26030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=26030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=26030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}