Apache Camel配置SSL的rest

原创 2015年11月17日 21:48:30

系统环境:

java version "1.8.0_66"

apache camel: 2.15.2


关于rest组件的用法,请参照:http://blog.csdn.net/mn960mn/article/details/48372565


那么,如何配置ssl呢,请继续往下看


一:创建证书

1:创建密钥对

keytool -genkeypair -alias rest -keystore restlet.jks

然后,按照提示,一步一步输入证书信息

2:导出公钥证书

keytool -exportcert -alias rest -keystore restlet.jks -file client.cer

3:把上一步导出的证书导入到浏览器中(可选)


二:在camel里配置ssl的rest,有两种方法

1:

<camel:sslContextParameters id="restSSLContextParameters">
	<camel:keyManagers keyPassword="123456">
		<camel:keyStore password="123456" type="jks" resource="E:/cert/restlet.jks" />
	</camel:keyManagers>
</camel:sslContextParameters>

<camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring">
	<restConfiguration component="restlet" contextPath="/" port="7722" scheme="https">
		<!-- 注意这个value的值,以#号开头 -->
		<endpointProperty key="sslContextParameters" value="#restSSLContextParameters" />
	</restConfiguration>
	<rest>
		<get uri="/ssl/test">
			<to uri="direct:aaa" />
		</get>
	</rest>
	<route>
		<from uri="direct:aaa" />
		<setBody>
			<simple>this is ssl body</simple>
		</setBody>
	</route>
</camelContext>


2:

<camel:sslContextParameters id="restSSLContextParameters">
	<camel:keyManagers keyPassword="123456">
		<camel:keyStore password="123456" type="jks" resource="E:/cert/restlet.jks" />
	</camel:keyManagers>
</camel:sslContextParameters>

<camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring">
	<restConfiguration component="restlet" contextPath="/" port="7722" scheme="https" />
	<route>
		<from uri="rest:get:/ssl/test?sslContextParameters=#restSSLContextParameters" />
		<setBody>
			<constant>this is rest ssl body</constant>
		</setBody>
	</route>
</camelContext>


然后,启动程序,就可以直接访问

https://127.0.0.1:7722/ssl/test

以上是单向认证。


如果需要双向认证的话,则还需要把客户端证书配置上去,示例代码如下:

<camel:sslContextParameters id="restSSLContextParameters">
	<camel:keyManagers keyPassword="123456">
		<camel:keyStore password="123456" type="jks" resource="E:/cert/restlet.jks" />
	</camel:keyManagers>
	<camel:trustManagers>
		<camel:keyStore password="xxx" resource="xxxx"/>
	</camel:trustManagers>
</camel:sslContextParameters>


版权声明:本文为博主原创文章,未经博主允许不得转载。

Apache Camel rest获取GET请求的参数

Apache Camel rest组件内部可以使用多个框架实现rest,比如restlet、jetty、servlet等等,我这里使用restlet 首先加入依赖 org.apache.c...
  • mn960mn
  • mn960mn
  • 2015年12月03日 09:28
  • 2704

Apache Camel rest实现重定向

很简单 在http返回的header里面加一个Location消息头,返回码改成301 示例代码如下: package com.lala.rest.bean; import...
  • mn960mn
  • mn960mn
  • 2015年12月18日 10:02
  • 1702

Apache Camel配置SSL的rest

系统环境: java version "1.8.0_66" apache camel: 2.15.2 关于rest组件的用法,请参照:http://blog.csdn.net/mn9...
  • mn960mn
  • mn960mn
  • 2015年11月17日 21:48
  • 1370

Apache Camel异常事务的实例和分析 -- 多线程事务

内容待补
  • laxsong
  • laxsong
  • 2016年11月19日 11:54
  • 398

camel发布restlet

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"            xmlns:cm="http://aries.apache.org/b...
  • sonycong
  • sonycong
  • 2015年08月12日 09:27
  • 644

Camel运行示例

这是一个很简单的Camel例子,代码如下: public static void main(String[] args) throws Exception { //创建Camel上下文 Defa...
  • xtayfjpk
  • xtayfjpk
  • 2014年09月06日 00:06
  • 1614

从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)

摘要:MVC模式早在上个世纪70年代就诞生了,直到今天它依然存在,可见生命力相当之强。MVC模式最早用于Smalltalk语言中,最后在其它许多开发语言中都得到了很好的应用,例如,Java中的Stru...
  • shaobingj126
  • shaobingj126
  • 2015年10月26日 09:16
  • 47882

apache camel jetty http

apache camel http  1,创建一个java控制台程序 建议maven,用pom.xml管理 org.apache.camel ca...
  • mendeliangyang
  • mendeliangyang
  • 2015年07月23日 17:46
  • 1658

Apache Camel读取配置文件

方法一: 方法二: 引用属性和上面的方法一样 camel版本:2.14.1...
  • mn960mn
  • mn960mn
  • 2015年09月17日 16:50
  • 1905
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Apache Camel配置SSL的rest
举报原因:
原因补充:

(最多只允许输入30个字)