Browse Source

camel ssl 支持测试

huangzhiyong 7 years ago
parent
commit
1962c76708

+ 0 - 11
hos-broker/pom.xml

@ -21,12 +21,6 @@
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
@ -40,11 +34,6 @@
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>

+ 1 - 1
hos-broker/src/main/resources/logback-spring.xml

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<configuration debug="true">
    <!--<property name="log_dir" value="logs/"/>-->
    <!--&lt;!&ndash;日志文件的保存路径,首先查找系统属性-Dlog.dir,如果存在就使用其;否则,在当前目录下创建名为logs目录做日志存放的目录 &ndash;&gt;-->
    <!--<property name="LOG_HOME" value="${log_dir:-logs}"/>-->

+ 30 - 0
hos-camel2/src/main/java/camel/central/archives/processor/ArchivesService.java

@ -0,0 +1,30 @@
package camel.central.archives.processor;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import org.springframework.stereotype.Service;
/**
 * Broker原则上具有等同性,这样Arbiter无论选择了哪个Broker能提供的服务都是一样的。
 * 但是因为Broker上还是会运行一些定时的采集任务,这些采集任务如果是多台Broker运行的话,可能会引起数据重复问题。
 * 所以在事件触发时需要做一些策略的调整:
 * 1.实时任务,通知所有的Broker进行更新路由
 * 2.采集任务,只通知其中的一台进行更新路由
 *
 * @created Airhead 2016/8/16.
 */
@Service("archivesService")
public class ArchivesService {
    private static final Logger logger = LoggerFactory.getLogger(ArchivesService.class);
    //入库服务调用(病人维度)
    public void storageArchive(String msg) {
        System.out.println(msg);
    }
    //入库服务调用(非病人维度/数据集维度)
    public void storageDataset(String msg) {
        System.out.println(msg);
    }
}

+ 36 - 0
hos-camel2/src/main/java/camel/central/archives/route/ArchivesMqRouter.java

@ -0,0 +1,36 @@
package camel.central.archives.route;
import com.yihu.hos.web.framework.constant.ArchivesConstant;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jms.JmsComponent;
import org.apache.camel.model.ModelCamelContext;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.jms.ConnectionFactory;
/**
 * @created Airhead 2016/8/1.
 */
@Component
public class ArchivesMqRouter extends RouteBuilder {
    @Value("${spring.activemq.broker-url}")
    private String brokerURL;
    @Value("${spring.activemq.user}")
    private String user;
    @Value("${spring.activemq.password}")
    private String password;
    @Override
    public void configure() throws Exception {
        ModelCamelContext context = this.getContext();
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
                user, password, brokerURL);
        // Note we can explicit name the component
        context.addComponent(ArchivesConstant.CAMEL_COMPONENT, JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
        from(ArchivesConstant.CAMEL_ENDPOINT)
        .to("bean:archivesService?method=storageArchive");
    }
}

+ 38 - 0
hos-camel2/src/main/java/camel/central/archives/route/ArchivesRouterBuilder.java

@ -0,0 +1,38 @@
package camel.central.archives.route;
import org.apache.camel.builder.RouteBuilder;
import org.springframework.stereotype.Component;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2017/3/13.
 */
@Component
public class ArchivesRouterBuilder extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        // 档案上传接口代理 (兼容非病人维度上传)
        from("jetty:http://0.0.0.0:9912/api/dataset_package?bridgeEndpoint=true&enableMultipartFilter=false").routeId("proxy_test")
                .removeHeaders("CamelHttp*")
                .to("jetty:http://192.168.1.221:10140/api/v1.0/dataset_package");
        //上传流程总线
        from("jetty:http://0.0.0.0:9911/uploadArchive").routeId("uploadArchive")
                .log("=========================心跳测试=====================");
        //流程健康测试接口
        from("jetty:http://0.0.0.0:9911/healthy").routeId("healthy_test")
                .log("=========================心跳测试=====================");
    }
}

+ 18 - 0
hos-camel2/src/main/java/camel/central/gateway/route/GatewayRouterBuilder.java

@ -4,6 +4,10 @@ import camel.central.gateway.processor.GatewayProcessor;
import camel.central.gateway.processor.WsProcessor;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jetty.JettyHttpComponent;
import org.apache.camel.util.jsse.KeyManagersParameters;
import org.apache.camel.util.jsse.KeyStoreParameters;
import org.apache.camel.util.jsse.SSLContextParameters;
import org.springframework.stereotype.Component;
/**
@ -21,6 +25,20 @@ public class GatewayRouterBuilder extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        //全局ssl设置
        KeyStoreParameters ksparams = new KeyStoreParameters();
        ksparams.setResource("D:/tomcat.keystore");
        ksparams.setPassword("123456");
        KeyManagersParameters kmp = new KeyManagersParameters();
        kmp.setKeyStore(ksparams);
        kmp.setKeyPassword("123456");
        SSLContextParameters scp = new SSLContextParameters();
        scp.setKeyManagers(kmp);
        JettyHttpComponent jettyComponent = getContext().getComponent("jetty", JettyHttpComponent.class);
        jettyComponent.setSslContextParameters(scp);
        //EHR ag-admin网关代理
        from("jetty:http://0.0.0.0:9998?matchOnUriPrefix=true").routeId("proxy")

+ 13 - 0
hos-web-framework/src/main/java/com/yihu/hos/web/framework/constant/ArchivesConstant.java

@ -0,0 +1,13 @@
package com.yihu.hos.web.framework.constant;
/**
 * @author HZY
 * @since 2017/06/23.
 */
public interface ArchivesConstant {
    String ACTIVE_MQ = "runtime.archive";   //active-mq消息,arbiter到broker的通讯
    String CAMEL_COMPONENT = "event.archive";  //camel组件命名
    String CAMEL_ENDPOINT = CAMEL_COMPONENT + ":queue:" + ACTIVE_MQ;   //camel的Endpoint
}

+ 0 - 3
src/main/java/com/yihu/hos/filter/SessionOutTimeFilter.java

@ -25,7 +25,6 @@ public class SessionOutTimeFilter extends OncePerRequestFilter {
        if (path.indexOf("/login") != -1
                || path.indexOf("/system/loginAction") != -1
                || path.indexOf("/error") != -1
                || path.indexOf("/monitor") != -1
                || path.indexOf("/test.jsp") != -1
                || path.indexOf("/logoutAction") != -1
                || path.indexOf(httpServletRequest.getContextPath() + "/static-dev") != -1
@ -34,8 +33,6 @@ public class SessionOutTimeFilter extends OncePerRequestFilter {
                || path.indexOf(httpServletRequest.getContextPath() + "/process") != -1
                || path.indexOf("swagger") != -1
                || path.indexOf(httpServletRequest.getContextPath() + "/v2/api-docs") != -1
                || path.indexOf("/tenant/down") != -1
                || path.indexOf("/tenant/upload") != -1
                || path.indexOf("/tenant/delFile") != -1
                || path.indexOf(httpServletRequest.getContextPath() + "/mobile") != -1) {
            filterChain.doFilter(httpServletRequest, httpServletResponse);