Browse Source

add casdoor test

animeic 1 year ago
parent
commit
58c0c0dad3
9 changed files with 92 additions and 30 deletions
  1. 1 0
      boxcost/Dockerfile
  2. 35 0
      boxcost/api/callback.go
  3. 1 0
      boxcost/api/router.go
  4. 0 29
      boxcost/api/sms.go
  5. 9 1
      boxcost/app.yaml
  6. 10 0
      boxcost/conf/app.go
  7. 3 0
      boxcost/go.mod
  8. 4 0
      boxcost/go.sum
  9. 29 0
      boxcost/token_jwt_key.pem

+ 1 - 0
boxcost/Dockerfile

@@ -14,6 +14,7 @@ RUN echo -e https://mirrors.ustc.edu.cn/alpine/v3.15/main > /etc/apk/repositorie
 
 WORKDIR /root/box-cost
 
+ADD token_jwt_key.pem token_jwt_key.pem
 ADD ./signature ./signature
 ADD ./app.yaml ./app.yaml
 ADD ./box-cost-service ./box-cost-service

+ 35 - 0
boxcost/api/callback.go

@@ -0,0 +1,35 @@
+package api
+
+import (
+	"fmt"
+	"net/http"
+	"os"
+
+	"github.com/casdoor/casdoor-go-sdk/casdoorsdk"
+	"github.com/gin-gonic/gin"
+)
+
+// https://auth.3dqueen.cloud/login/oauth/authorize?client_id=3d6cc17239eafd8e79b7&redirect_uri=https://www.3dqueen.cloud/box/v1/boxcost/callback&response_type=code&scope=openid&state=STATE
+func callback(c *gin.Context, apictx *ApiSession) (interface{}, error) {
+	authConf := apictx.Svc.Conf.Auth
+	pemByte, err := os.ReadFile(authConf.Certificate)
+	if err != nil {
+		return nil, err
+	}
+	casdoorsdk.InitConfig(authConf.Endpoint, authConf.ClientId, authConf.ClientSecret, string(pemByte), authConf.OrganizationName, authConf.ApplicationName)
+	token, err := casdoorsdk.GetOAuthToken(c.Query("code"), c.Query("state"))
+	if err != nil {
+		fmt.Println(err)
+	}
+
+	fmt.Println(token.AccessToken)
+	claims, err := casdoorsdk.ParseJwtToken(token.AccessToken)
+	if err != nil {
+		fmt.Println(err)
+	}
+	fmt.Println(claims)
+	c.Redirect(http.StatusFound, "https://auth.3dqueen.cloud")
+
+	// claims.AccessToken = token.AccessToken
+	return nil, nil
+}

+ 1 - 0
boxcost/api/router.go

@@ -16,6 +16,7 @@ func RegRouters(svc *Service) {
 	//数据存储
 	boxcost.POST("/save/policy", ServiceObsUploadPolicy)
 	boxcost.GET("/printr", Printr)
+	boxcost.GET("/callback", callback)
 
 	// 材料管理
 	Material(boxcost)

+ 0 - 29
boxcost/api/sms.go

@@ -59,32 +59,3 @@ func SendSmsNotify(phone string, info *SupplierSmsReq, wg *sync.WaitGroup) error
 
 	return reserr
 }
-
-// todo test
-func SendSmsNotify1(phone string, info *SupplierSmsReq) error {
-	client, _err := createSmsClient()
-	if _err != nil {
-		log.Error(_err)
-		return _err
-	}
-
-	infobytes, _ := json.Marshal(info)
-
-	sendSmsRequest := &dysmsapi20170525.SendSmsRequest{
-		PhoneNumbers:  tea.String(phone),
-		SignName:      tea.String("中鱼互动"),
-		TemplateCode:  tea.String("SMS_460545008"),
-		TemplateParam: tea.String(string(infobytes)),
-	}
-
-	resp, err := client.SendSms(sendSmsRequest)
-	if err != nil {
-		log.Error(err)
-		return err
-	}
-	if *resp.Body.Code == "OK" {
-		return nil
-	}
-
-	return fmt.Errorf("code err %s", *resp.Body.Code)
-}

+ 9 - 1
boxcost/app.yaml

@@ -32,4 +32,12 @@ nats:
   # url: nats://124.71.139.24:14300
   url: nats://127.0.0.1:14300
   maxReconnect: 1000
-  reconnDelaySecond: 5
+  reconnDelaySecond: 5
+
+Auth:
+  endpoint: https://auth.3dqueen.cloud
+  clientId:	cde4bb4bd12dc2465ab0
+  clientSecret: 8aea6e1d74675cdce3126c024d268bd8b070f6c6
+  certificate: token_jwt_key.pem
+  organizationName:	org_3dqueen_cloud
+  applicationName: app_boxcost

+ 10 - 0
boxcost/conf/app.go

@@ -61,6 +61,16 @@ type AppConf struct {
 		SecrateKey  string
 		Endpoint    string
 	}
+
+	Auth struct {
+		Endpoint     string
+		ClientId     string
+		ClientSecret string
+
+		Certificate      string
+		OrganizationName string
+		ApplicationName  string
+	}
 }
 
 func LoadConfFile(filepath string) (*AppConf, error) {

+ 3 - 0
boxcost/go.mod

@@ -35,10 +35,13 @@ require (
 	github.com/tklauser/go-sysconf v0.3.11 // indirect
 	github.com/tklauser/numcpus v0.6.0 // indirect
 	github.com/yusufpapurcu/wmi v1.2.2 // indirect
+	golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect
+	google.golang.org/appengine v1.6.7 // indirect
 )
 
 require (
 	github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.18
+	github.com/casdoor/casdoor-go-sdk v0.20.1
 	github.com/cenkalti/backoff/v4 v4.2.0 // indirect
 	github.com/cespare/xxhash/v2 v2.2.0 // indirect
 	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect

+ 4 - 0
boxcost/go.sum

@@ -213,6 +213,8 @@ github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx2
 github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8=
 github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50=
 github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE=
+github.com/casdoor/casdoor-go-sdk v0.20.1 h1:kb1Yuzlky8ogLMpOgJQ7pkwyqs8bf2T1vsFuUo+/9/A=
+github.com/casdoor/casdoor-go-sdk v0.20.1/go.mod h1:MBed3ISHQfXTtoOCAk5T8l5lt4wFvsyynrw0awggydY=
 github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
 github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
 github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4=
@@ -1498,6 +1500,7 @@ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ
 golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg=
 golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1807,6 +1810,7 @@ google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7
 google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
 google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
 google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
 google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk=
 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=

+ 29 - 0
boxcost/token_jwt_key.pem

@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIE3TCCAsWgAwIBAgIDAeJAMA0GCSqGSIb3DQEBCwUAMCgxDjAMBgNVBAoTBWFk
+bWluMRYwFAYDVQQDEw1jZXJ0LWJ1aWx0LWluMB4XDTIzMDQxOTAyNDcxOFoXDTQz
+MDQxOTAyNDcxOFowKDEOMAwGA1UEChMFYWRtaW4xFjAUBgNVBAMTDWNlcnQtYnVp
+bHQtaW4wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDtNyapRT3KMe65
+7pzqmngtUAByJbuGLZu7UR7UpOKBvdEYy3LWcD0okWJpMdom1WcM4kfla7lJNv3J
+heS34eXxx3SjRk8sdPcPf4yPN7+ToWJPvucMPCZbwS4emsqq+uIC96WOrBj+D+/W
+U6vtOH/A2tF0jA2NIXmSU+5P1aa5chQIUYQ3yWMdDBaBV4/OuSaGjoCPz4RTLVSO
+aUFaq74xGV9Bf55qNrJpCpsL9kUrsn3pidMwLpNvwzxFK88Y7xmdwaqeqlFBSp+y
+Loowt/tZRP1vGMbzbTYMuyt+4grqI/PNmP5qeKKUuPcFHBKZgDyxQQJb+l7O50om
+JfHaxB4Xjkz3YG+4gFgE5qLChfXpTizixvjjABEhUGkF74kvAV8jStiyDrbCeNQ2
+kLy4iodMi7YxMB3F9awjxGzQs1m3HtQLUMKIlxz89OGrVuTpP5wnsnG5VQPsLb7d
+R/Zi2sjBh1h5KpJt70q91gDX+5EsdC+P2nunBhK8AfmYj4AmuxVtyVJ5Nujt14sg
+KBOUeK0yFoW5tXIndZy41Gpm18sDHNwubzKUq8NJve6DFoWbLGD9qZNtsPIx6o6B
+KGLm21mTMBB3xEpKIPjKYdHOXqtVorhXcMXSrr2feARDiFPBUuU6Br+DtLJBiq+8
+fn29KS79tfKbDVjDrvlZfMH4EzPkJwIDAQABoxAwDjAMBgNVHRMBAf8EAjAAMA0G
+CSqGSIb3DQEBCwUAA4ICAQBv+eNQmRiMTdvIweex7eU+fPkt357wls3BGNPlD3VC
+xp6fqZ0+n+CavWhF0TB7xsAXXtXWhOJ3yXXDiCF05OoS7aZWlr1N5mJmLuLYxNP6
+VKWERETbkTbbgRiEUIJYpy9cXCXhL7ZDKltb+zIzAEAATOv5BUESpND9q3zds/nS
+SRWoWf5IccFqdhLKKKrw/zsIMKCHnoxWdxvqEFD1h7uVnOvsCtR84MHuvgzuZGB6
+L4SFt9jXkzmtuP7crq3dpNKoS/JL3uXuVDc2P1rhP5PL+hlCVfU6E38JmbG+/Pr+
+g2KfqUyuFZXfM5V2da4agHTJvbuh6x8SMnNlzagkFtI1eYursj6teqzNxL7F+Ojn
+w3BGuQNIs05G76+8xE0EcrLTq9XM4wDcdoiIfU336bpRRCFt0cQBF63603JOVsIe
+mgUj+pbsBPBTZHG/v3AvNth4H81ssIFicxK6kU6r2g+FCRrR0UvoYMtr7yFiyKTj
+cEXHf7fFB8dWKpLKApoXWQSgAPgk2/c7ODpwJ/j0OS8RxmQzIoZD3nEGBkfchWcT
+fPF6DJ42GRQuGASHsjfreNfZtAU1KLJd5k2iigoyTRZVOQeeotCIv1BymDNIZTjj
+HrcazC9CIc9iA3uxv4lDvcQG7eFEgoKkxgIrNO708D5c3QKe9LChYmfpgvT35XFw
+5w==
+-----END CERTIFICATE-----