Browse Source

Merge branch 'master' of http://192.168.1.220:10080/esb/esb

demon 8 years ago
parent
commit
5b334b2d39

+ 13 - 1
hos-broker/pom.xml

@ -6,7 +6,7 @@
    <groupId>com.yihu.hos</groupId>
    <artifactId>hos-broker</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <packaging>war</packaging>
    <name>hos-broker</name>
    <description>ESB服务运行模块</description>
@ -55,6 +55,18 @@
            <groupId>com.yihu.hos</groupId>
            <artifactId>hos-web-framework</artifactId>
            <version>1.1.1-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <version>1.4.1.RELEASE</version>
            <!--<scope>provided</scope>-->
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.camel/camel-stream -->
        <!-- sigar -->

+ 10 - 1
hos-broker/src/main/java/com/yihu/hos/HosBrokerApplication.java

@ -5,11 +5,13 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
@EnableScheduling
public class HosBrokerApplication {
public class HosBrokerApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {
@ -17,4 +19,11 @@ public class HosBrokerApplication {
        app.addListeners(new ApplicationStartListener());
        app.run(args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        builder.sources(this.getClass());
        builder.listeners(new ApplicationStartListener());
        return super.configure(builder);
    }
}

+ 1 - 2
hos-broker/src/main/java/com/yihu/hos/common/listener/ApplicationStartListener.java

@ -69,8 +69,7 @@ public class ApplicationStartListener implements ApplicationListener<ContextRefr
            //默认所有class均为正确
            isCorrectClassMap.put(code, true);
            // 这是system业务系统在本地存储class的根目录
            File systemClassFlowPath = new File(ClassLoader.getSystemResource("").getPath() + "/" + code);
            File systemClassFlowPath = new File(this.getClass().getProtectionDomain().getClassLoader().getResource("").getPath() + "/" + code);
            List<SystemServiceFlowClass> processesClassList = systemServiceFlowClassGroupMap.get("processor" + flowId);
            List<SystemServiceFlowClass> routesClassList = systemServiceFlowClassGroupMap.get("route" + flowId);
            // 创建processor文件

+ 4 - 5
hos-camel/src/main/java/qlc/route/QlcRouteBulider.java

@ -13,12 +13,11 @@ public class QlcRouteBulider extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("jetty:http4://192.168.131.111:8066/qlc").routeId("qlc")
        from("jetty:http4://172.17.110.178:9088/qlc").routeId("qlc")
                .process(new Processor1()).setHeader(Exchange.HTTP_METHOD, constant("POST")).log("servers: 3,code: queryUserInfo,order: 1")
                .to("http4://192.168.131.111:8088/api/v1.0/qlc/queryUserInfo").log("servers: 3,code: queryUserInfo,order: 1")
                .to("http4://172.19.103.89:8088/api/v1.0/qlc/queryUserInfo").log("servers: 3,code: queryUserInfo,order: 1")
                .process(new Processor2()).setHeader(Exchange.HTTP_METHOD, constant("POST")).log("servers: 3,code: patientInformation,order: 1")
                .to("http4://192.168.131.111:8088/api/v1.0/qlc/patientInformation").log("servers: 3,code: patientInformation,order: 1")
                .process(new Processor2()).setHeader(Exchange.HTTP_METHOD, constant("POST")).log("servers: 3,code: patient,order: 1")
                .to("http4://192.168.131.111:8088/crawler/patient").log("servers: 3,code: patient,order: 1").to("stream:out"); // 2. 为路由配置组件或终端节点.
                .to("http4://172.19.103.89:8088/api/v1.0/qlc/patientInformation").log("servers: 3,code: patientInformation,order: 1")
                .process(new Processor2()).setHeader(Exchange.HTTP_METHOD, constant("POST")).to("stream:out"); // 2. 为路由配置组件或终端节点.
    }
}

File diff suppressed because it is too large
+ 11 - 11
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/CollectHelper.java


+ 3 - 3
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/CrawlerService.java

@ -549,7 +549,7 @@ public class CrawlerService {
        return list;
    }
    public static void main(String[] args) {
//    public static void main(String[] args) {
//        try {
//        List<EhrCondition> queryParams = new ArrayList<>();
//        queryParams.add(new EhrCondition(" = ","_id","579091357a2b8f19b0000001" ));
@ -575,8 +575,8 @@ public class CrawlerService {
//            e.printStackTrace();
//        }
//        testGetBlob();
        testFetch();
    }
//        testFetch();
//    }
    /**
     * TODO  采集测试,之后删除

+ 10 - 3
hos-saas/src/main/java/com/yihu/hos/saas/controllers/AuthenticateController.java

@ -2,12 +2,14 @@ package com.yihu.hos.saas.controllers;
import com.yihu.hos.saas.services.AuthenticateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
 * @created Airhead 2016/11/16.
@ -18,8 +20,13 @@ public class AuthenticateController {
    @Autowired
    private AuthenticateService authenticateService;
    @RequestMapping(method = RequestMethod.POST)
    public String auth(HttpServletRequest request, HttpServletResponse response) {
        return authenticateService.auth(request, response);
    @RequestMapping(value = "/{tenantName}", method = RequestMethod.POST)
    public String auth(@PathVariable(name = "tenantName") String tenantName,
                       HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession();
        String tenantPassword = request.getParameter("tenantPassword");
        String user = request.getParameter("user");
        String password = request.getParameter("password");
        return authenticateService.auth(session, tenantName, tenantPassword, user, password);
    }
}

+ 20 - 0
hos-saas/src/main/java/com/yihu/hos/saas/daos/TenantDao.java

@ -0,0 +1,20 @@
package com.yihu.hos.saas.daos;
import com.yihu.hos.saas.models.TenantModel;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
 * @created Airhead 2016/11/16.
 */
@Component
@Transactional
public interface TenantDao extends CrudRepository<TenantModel, Long> {
    @Query("select a from TenantModel a where a.code = ?1 and a.valid=1")
    TenantModel findOneByCode(String code);
    @Query("select a from TenantModel a where a.name = ?1 and a.valid=1")
    TenantModel findOneByName(String name);
}

+ 106 - 0
hos-saas/src/main/java/com/yihu/hos/saas/models/TenantModel.java

@ -0,0 +1,106 @@
package com.yihu.hos.saas.models;
import com.yihu.hos.saas.models.common.IdModel;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * @created Airhead 2016/11/16.
 */
@Entity
@Table(name = "tenant")
public class TenantModel extends IdModel {
    private String code;
    private String name;
    private String password;
    private String schema;
    private Date created;
    private Long createdUnix;
    private Date updated;
    private Long updatedUnix;
    private Integer valid;
    @Column(name = "password")
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Column(name = "code")
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "schema")
    public String getSchema() {
        return schema;
    }
    public void setSchema(String schema) {
        this.schema = schema;
    }
    @Column(name = "created")
    public Date getCreated() {
        return created;
    }
    public void setCreated(Date created) {
        this.created = created;
    }
    @Column(name = "created_unix")
    public Long getCreatedUnix() {
        return createdUnix;
    }
    public void setCreatedUnix(Long createdUnix) {
        this.createdUnix = createdUnix;
    }
    @Column(name = "updated")
    public Date getUpdated() {
        return updated;
    }
    public void setUpdated(Date updated) {
        this.updated = updated;
    }
    @Column(name = "updated_unix")
    public Long getUpdatedUnix() {
        return updatedUnix;
    }
    public void setUpdatedUnix(Long updatedUnix) {
        this.updatedUnix = updatedUnix;
    }
    @Column(name = "valid")
    public Integer getValid() {
        return valid;
    }
    public void setValid(Integer valid) {
        this.valid = valid;
    }
}

+ 11 - 2
hos-saas/src/main/java/com/yihu/hos/saas/models/bo/UserSession.java

@ -8,16 +8,25 @@ import java.util.UUID;
public class UserSession {
    private String userCode;
    private String token;
    private String schema;
    public UserSession() {
    }
    public UserSession(String userCode) {
    public UserSession(String userCode, String schema) {
        this.userCode = userCode;
        this.schema = schema;
        token = UUID.randomUUID().toString();
    }
    public String getSchema() {
        return schema;
    }
    public void setSchema(String schema) {
        this.schema = schema;
    }
    public String getUserCode() {
        return userCode;
    }

+ 2 - 1
hos-saas/src/main/java/com/yihu/hos/saas/services/AuthenticateService.java

@ -4,6 +4,7 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
 * @created Airhead 2016/11/16.
@ -12,5 +13,5 @@ import javax.servlet.http.HttpServletResponse;
public interface AuthenticateService {
    boolean isAuth(HttpServletRequest request, HttpServletResponse response) throws Exception;
    String auth(HttpServletRequest request, HttpServletResponse response);
    String auth(HttpSession httpSession, String tenantName, String tenantPassword, String user, String password);
}

+ 21 - 15
hos-saas/src/main/java/com/yihu/hos/saas/services/impl/AuthenticateServiceImpl.java

@ -1,10 +1,10 @@
package com.yihu.hos.saas.services.impl;
import com.yihu.hos.saas.constants.ContextAttributes;
import com.yihu.hos.saas.daos.TenantDao;
import com.yihu.hos.saas.daos.UserDao;
import com.yihu.hos.saas.daos.UserTenantDao;
import com.yihu.hos.saas.models.TenantModel;
import com.yihu.hos.saas.models.UserModel;
import com.yihu.hos.saas.models.UserTenantModel;
import com.yihu.hos.saas.models.bo.UserSession;
import com.yihu.hos.saas.services.AuthenticateService;
import com.yihu.hos.saas.utils.LocalContext;
@ -20,8 +20,9 @@ import javax.servlet.http.HttpSession;
public class AuthenticateServiceImpl implements AuthenticateService {
    @Autowired
    private UserDao userDao;
    @Autowired
    private UserTenantDao userTenantDao;
    private TenantDao tenantDao;
    @Override
    public boolean isAuth(HttpServletRequest request, HttpServletResponse response) throws Exception {
@ -31,26 +32,31 @@ public class AuthenticateServiceImpl implements AuthenticateService {
            return false;
        }
        UserTenantModel userTenantModel = userTenantDao.findOne(userSession.getUserCode());
        LocalContext.getContext().setAttachment(ContextAttributes.SCHEMA, userTenantModel.getTenantSchema());
        LocalContext.getContext().setAttachment(ContextAttributes.SCHEMA, userSession.getSchema());
        return true;
    }
    @Override
    public String auth(HttpServletRequest request, HttpServletResponse response) {
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        UserModel userModel = userDao.findOne(name);
        if (userModel == null) {
            return "Auth Failed";
    public String auth(HttpSession httpSession, String tenantName, String tenantPassword, String user, String password) {
        TenantModel tenantModel = tenantDao.findOneByName(tenantName);
        //TODO:现在只是简单逻辑,需要修改成安全逻辑
        if (tenantModel == null
//                || !password.equals(tenantModel.getPassword())
                ) {
            return "Tenant Auth Failed";
        }
        if (password.equals(userModel.getPassword())) {     //简单逻辑
            HttpSession session = request.getSession();
            session.setAttribute("userSession", new UserSession(userModel.getCode()));
        //切换Schema
        LocalContext.getContext().setAttachment(ContextAttributes.SCHEMA, tenantModel.getSchema());
        UserModel userModel = userDao.findOne(user);
        //TODO:现在只是简单逻辑,需要修改成安全逻辑
        if (userModel == null || !password.equals(userModel.getPassword())) {
            return "User Auth Failed";
        }
        httpSession.setAttribute("userSession", new UserSession(userModel.getCode(), tenantModel.getSchema()));
        return "Auth Success";
    }
}

+ 3 - 1
hos-saas/src/main/java/com/yihu/hos/saas/services/mockimpl/AuthenticateServiceMockImpl.java

@ -7,6 +7,7 @@ import com.yihu.hos.saas.utils.LocalContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
 * @created Airhead 2016/11/16.
@ -20,10 +21,11 @@ public class AuthenticateServiceMockImpl implements AuthenticateService {
    }
    @Override
    public String auth(HttpServletRequest request, HttpServletResponse response) {
    public String auth(HttpSession httpSession, String tenantName, String tenantPassword, String user, String password) {
        UserSession userSession = new UserSession();
        userSession.setUserCode("abc");
        userSession.setToken("1234567890");
        return null;
    }
    
}