fix: 修复项目初始化问题
This commit is contained in:
+20
-3
@@ -8,12 +8,16 @@ import io.netty.handler.ssl.SslContextBuilder;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.ibatis.solon.annotation.Db;
|
||||
import org.dromara.neutrinoproxy.server.base.db.DBInitialize;
|
||||
import org.dromara.neutrinoproxy.server.dal.DomainMapper;
|
||||
import org.dromara.neutrinoproxy.server.dal.entity.DomainNameDO;
|
||||
import org.dromara.neutrinoproxy.server.util.ProxyUtil;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import org.noear.solon.annotation.Init;
|
||||
import org.noear.solon.annotation.Inject;
|
||||
import org.noear.solon.core.event.AppLoadEndEvent;
|
||||
import org.noear.solon.core.event.EventListener;
|
||||
import org.noear.solon.core.runtime.NativeDetector;
|
||||
|
||||
import javax.net.ssl.KeyManagerFactory;
|
||||
import java.io.ByteArrayInputStream;
|
||||
@@ -35,17 +39,30 @@ public class SslContextManager implements EventListener<AppLoadEndEvent> {
|
||||
@Db
|
||||
private DomainMapper domainMapper;
|
||||
|
||||
@Inject
|
||||
private DBInitialize dbInitialize;
|
||||
|
||||
// 初始化时加载所有域名的 SSL 上下文
|
||||
@Override
|
||||
public void onEvent(AppLoadEndEvent appLoadEndEvent) throws Throwable {
|
||||
@Init
|
||||
public void init() throws Throwable {
|
||||
// aot 阶段,不初始化
|
||||
if (NativeDetector.isAotRuntime()) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
initializeSslContexts();
|
||||
} catch (Exception e) {
|
||||
log.error("initialize SSL handler failed", e);
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onEvent(AppLoadEndEvent appLoadEndEvent) throws Throwable {
|
||||
|
||||
}
|
||||
|
||||
// 维护域名到 SslContext 的映射
|
||||
private final ConcurrentHashMap<String, SslContext> domainSslContexts = new ConcurrentHashMap<>();
|
||||
|
||||
|
||||
+9
-2
@@ -15,7 +15,10 @@ import org.dromara.neutrinoproxy.server.base.page.PageInfo;
|
||||
import org.dromara.neutrinoproxy.server.base.page.PageQuery;
|
||||
import org.dromara.neutrinoproxy.server.base.rest.SystemContextHolder;
|
||||
import org.dromara.neutrinoproxy.server.constant.*;
|
||||
import org.dromara.neutrinoproxy.server.controller.req.proxy.*;
|
||||
import org.dromara.neutrinoproxy.server.controller.req.proxy.DomainCreateReq;
|
||||
import org.dromara.neutrinoproxy.server.controller.req.proxy.DomainListReq;
|
||||
import org.dromara.neutrinoproxy.server.controller.req.proxy.DomainUpdateEnableStatusReq;
|
||||
import org.dromara.neutrinoproxy.server.controller.req.proxy.DomainUpdateReq;
|
||||
import org.dromara.neutrinoproxy.server.controller.res.proxy.DomainListRes;
|
||||
import org.dromara.neutrinoproxy.server.controller.res.proxy.DomainUpdateDefaultStatusRes;
|
||||
import org.dromara.neutrinoproxy.server.controller.res.proxy.DomainUpdateEnableStatusRes;
|
||||
@@ -34,6 +37,7 @@ import org.noear.solon.annotation.Component;
|
||||
import org.noear.solon.annotation.Init;
|
||||
import org.noear.solon.annotation.Inject;
|
||||
import org.noear.solon.core.handle.UploadedFile;
|
||||
import org.noear.solon.core.runtime.NativeDetector;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
@@ -61,7 +65,6 @@ public class DomainService {
|
||||
@Inject
|
||||
private SslContextManager sslContextManager;
|
||||
|
||||
|
||||
public PageInfo<DomainListRes> page(PageQuery pageQuery, DomainListReq req) {
|
||||
Page<DomainNameDO> page = domainMapper.selectPage(new Page<>(pageQuery.getCurrent(), pageQuery.getSize()), new LambdaQueryWrapper<DomainNameDO>()
|
||||
.eq(req.getEnable() != null, DomainNameDO::getEnable, req.getEnable())
|
||||
@@ -254,6 +257,10 @@ public class DomainService {
|
||||
|
||||
@Init
|
||||
public void init() {
|
||||
// aot 阶段,不初始化
|
||||
if (NativeDetector.isAotRuntime()) {
|
||||
return;
|
||||
}
|
||||
List<FullDomainNameBO> fullDomainNameBOS = domainMapper.selectFullDomainNameList();
|
||||
if (CollectionUtil.isEmpty(fullDomainNameBOS)) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user