Browse Source

wip:赛思两套环境修改

wangkaiyue 2 years ago
parent
commit
4c219a37bd
2 changed files with 56 additions and 18 deletions
  1. 48 14
      core/proxy/broker/outServer/SussBi.go
  2. 8 4
      etc/config.yaml

+ 48 - 14
core/proxy/broker/outServer/SussBi.go

@@ -18,12 +18,15 @@ import (
 )
 
 type sussBi struct {
-	addr string
-	user string
-	pwd  string
-	Url  *url.URL
-	jar  *cookiejar.Jar
-	prm  *ParamReplaceManager
+	addr       string
+	loginAddr  string
+	user       string
+	pwd        string
+	Url        *url.URL
+	cookiePath string
+	jar        *cookiejar.Jar
+	succbiJar  *cookiejar.Jar
+	prm        *ParamReplaceManager
 }
 
 //参数替换
@@ -46,6 +49,8 @@ func InitSussBi(config map[string]interface{}) (*sussBi, error) {
 	user := gconv.String(config["user"])
 	password := gconv.String(config["password"])
 	paramReplace := gconv.Map(config["paramReplace"])
+	cookiePath := gconv.String(config["cookiePath"])
+	loginAddr := gconv.String(config["loginAddr"])
 	if address == "" {
 		return nil, fmt.Errorf("配置异常")
 	}
@@ -55,6 +60,12 @@ func InitSussBi(config map[string]interface{}) (*sussBi, error) {
 	if err != nil {
 		return nil, fmt.Errorf("初始化cookie异常")
 	}
+	sussCookie2, err2 := cookiejar.New(&cookiejar.Options{
+		PublicSuffixList: publicsuffix.List,
+	})
+	if err2 != nil {
+		return nil, fmt.Errorf("初始化cookie异常")
+	}
 	prManager := &ParamReplaceManager{
 		eqRouters:   map[string]*ParamReplace{},
 		regexRouter: map[*regexp.Regexp]*ParamReplace{},
@@ -95,12 +106,15 @@ func InitSussBi(config map[string]interface{}) (*sussBi, error) {
 	}
 	u, _ := url.Parse(address)
 	return &sussBi{
-		addr: address,
-		user: user,
-		Url:  u,
-		pwd:  password,
-		jar:  sussCookie,
-		prm:  prManager,
+		addr:       address,
+		user:       user,
+		Url:        u,
+		pwd:        password,
+		loginAddr:  loginAddr,
+		cookiePath: cookiePath,
+		jar:        sussCookie,
+		succbiJar:  sussCookie2,
+		prm:        prManager,
 	}, nil
 }
 
@@ -116,13 +130,33 @@ func (s *sussBi) AutoLogin() error {
 	if !(resp.StatusCode == 302 || resp.StatusCode == 200) {
 		return fmt.Errorf("自动登录异常")
 	}
+	client.Jar = s.succbiJar
+	resp, err = client.Get(fmt.Sprintf("%s/succbi/?:user=%s&:password=%s", s.addr, s.user, s.pwd))
+	if err != nil {
+		return err
+	}
+	if !(resp.StatusCode == 302 || resp.StatusCode == 200) {
+		return fmt.Errorf("自动登录异常")
+	}
 	return nil
 }
 
 // RequestLogin 装配登录状态
 func (s *sussBi) RequestLogin(r *ghttp.Request) error {
-	if cookies := s.jar.Cookies(s.Url); len(cookies) > 0 {
-		r.Request.AddCookie(cookies[0])
+	if strings.HasPrefix(r.URL.Path, "/succbi") {
+		u, e := url.Parse(s.Url.String() + "/succbi")
+		if e != nil {
+			return e
+		}
+		cookies2 := s.succbiJar.Cookies(s.Url)
+		fmt.Println(cookies2)
+		if cookies := s.succbiJar.Cookies(u); len(cookies) > 0 {
+			r.Request.AddCookie(cookies[0])
+		}
+	} else {
+		if cookies := s.jar.Cookies(s.Url); len(cookies) > 0 {
+			r.Request.AddCookie(cookies[0])
+		}
 	}
 	return nil
 }

+ 8 - 4
etc/config.yaml

@@ -126,18 +126,22 @@ outServer:
     user: jianyuweb
     password: 111111
     paramReplace:
-      "/api/meta/services/convertFileToPDF":
+      "/sussbi/api/meta/services/convertFileToPDF/*":
         replace:
           QUERY_PARAM_M_POSITION_ID: "jyUserPositionId"
           position_id: "jyUserPositionId"
-      "/api/dw/services/downloadAttachment":
+      "/sussbi/api/dw/services/downloadAttachment":
         match:
           params.jyUserPositionId: "jyUserPositionId"
-      "/api/dw/services/getDwAttachments":
+      "/sussbi/api/dw/services/getDwAttachments":
         match:
           params.jyUserPositionId: "jyUserPositionId"
+      "/sussbi/nzbg/app/nzbg.app/word_nzbg/nzbg_word.d.docx":
+        replace:
+          QUERY_PARAM_M_POSITION_ID: "jyUserPositionId"
+          position_id: "jyUserPositionId"
 
 # 仅限此程序代理的地址
 noPowerUrlSwitch:
-  '/nzj/app/nzj.app/nzj_detail_1.spg': '/nzj/app/nzj.app/nzj_detail_0.spg'
+  '/nzj/app/nzj.app/nzj_detail_1.spg' : '/nzj/app/nzj.app/nzj_detail_0.spg'
   '/nzj/app/nzj.app/nzj_search_1.spg': '/nzj/app/nzj.app/nzj_search_0.spg'