mirror of https://github.com/casbin/casnode.git
feat: support configuring the database using environment variables (#577)
Signed-off-by: yehong <239859435@qq.com>
This commit is contained in:
parent
2dee05c7f3
commit
74e0fd937b
|
@ -17,7 +17,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/casbin/casnode/conf"
|
||||||
"github.com/casbin/casnode/object"
|
"github.com/casbin/casnode/object"
|
||||||
"github.com/casbin/casnode/service"
|
"github.com/casbin/casnode/service"
|
||||||
)
|
)
|
||||||
|
@ -26,7 +26,7 @@ var adapter *object.Adapter
|
||||||
|
|
||||||
func TestTopicTag(t *testing.T) {
|
func TestTopicTag(t *testing.T) {
|
||||||
topics := []*object.Topic{}
|
topics := []*object.Topic{}
|
||||||
adapter = object.NewAdapter(beego.AppConfig.String("driverName"), beego.AppConfig.String("dataSourceName"), beego.AppConfig.String("dbName"))
|
adapter = object.NewAdapter(conf.GetConfigString("driverName"), conf.GetConfigString("dataSourceName"), conf.GetConfigString("dbName"))
|
||||||
err := adapter.Engine.Table("topic").Find(&topics)
|
err := adapter.Engine.Table("topic").Find(&topics)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
|
|
@ -17,7 +17,7 @@ package casdoor
|
||||||
import (
|
import (
|
||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/casbin/casnode/conf"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
"xorm.io/xorm"
|
"xorm.io/xorm"
|
||||||
)
|
)
|
||||||
|
@ -34,14 +34,14 @@ type Session struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitCasdoorAdapter() {
|
func InitCasdoorAdapter() {
|
||||||
casdoorDbName := beego.AppConfig.String("casdoorDbName")
|
casdoorDbName := conf.GetConfigString("casdoorDbName")
|
||||||
if casdoorDbName == "" {
|
if casdoorDbName == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
adapter = NewAdapter(beego.AppConfig.String("driverName"), beego.AppConfig.String("dataSourceName"), beego.AppConfig.String("casdoorDbName"))
|
adapter = NewAdapter(conf.GetConfigString("driverName"), conf.GetConfigDataSourceName(), conf.GetConfigString("casdoorDbName"))
|
||||||
|
|
||||||
CasdoorOrganization = beego.AppConfig.String("casdoorOrganization")
|
CasdoorOrganization = conf.GetConfigString("casdoorOrganization")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adapter represents the MySQL adapter for policy storage.
|
// Adapter represents the MySQL adapter for policy storage.
|
||||||
|
|
|
@ -0,0 +1,106 @@
|
||||||
|
// Copyright 2023 The Casbin Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package conf
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"runtime"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/astaxie/beego"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetConfigString(key string) string {
|
||||||
|
if value, ok := os.LookupEnv(key); ok {
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
|
res := beego.AppConfig.String(key)
|
||||||
|
if res == "" {
|
||||||
|
if key == "staticBaseUrl" {
|
||||||
|
res = "https://cdn.casbin.org"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetConfigBool(key string) (bool, error) {
|
||||||
|
value := GetConfigString(key)
|
||||||
|
if value == "true" {
|
||||||
|
return true, nil
|
||||||
|
} else if value == "false" {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
return false, fmt.Errorf("value %s cannot be converted into bool", value)
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetConfigInt64(key string) (int64, error) {
|
||||||
|
value := GetConfigString(key)
|
||||||
|
num, err := strconv.ParseInt(value, 10, 64)
|
||||||
|
return num, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetConfigDataSourceName() string {
|
||||||
|
dataSourceName := GetConfigString("dataSourceName")
|
||||||
|
|
||||||
|
runningInDocker := os.Getenv("RUNNING_IN_DOCKER")
|
||||||
|
if runningInDocker == "true" {
|
||||||
|
// https://stackoverflow.com/questions/48546124/what-is-linux-equivalent-of-host-docker-internal
|
||||||
|
if runtime.GOOS == "linux" {
|
||||||
|
dataSourceName = strings.ReplaceAll(dataSourceName, "localhost", "172.17.0.1")
|
||||||
|
} else {
|
||||||
|
dataSourceName = strings.ReplaceAll(dataSourceName, "localhost", "host.docker.internal")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dataSourceName
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetLanguage(language string) string {
|
||||||
|
if language == "" || language == "*" {
|
||||||
|
return "en"
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(language) < 2 {
|
||||||
|
return "en"
|
||||||
|
} else {
|
||||||
|
return language[0:2]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsDemoMode() bool {
|
||||||
|
return strings.ToLower(GetConfigString("isDemoMode")) == "true"
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetConfigBatchSize() int {
|
||||||
|
res, err := strconv.Atoi(GetConfigString("batchSize"))
|
||||||
|
if err != nil {
|
||||||
|
res = 100
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetConfigRealDataSourceName(driverName string) string {
|
||||||
|
var dataSourceName string
|
||||||
|
if driverName != "mysql" {
|
||||||
|
dataSourceName = GetConfigDataSourceName()
|
||||||
|
} else {
|
||||||
|
dataSourceName = GetConfigDataSourceName() + GetConfigString("dbName")
|
||||||
|
}
|
||||||
|
return dataSourceName
|
||||||
|
}
|
|
@ -18,7 +18,7 @@ import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/casbin/casnode/conf"
|
||||||
"github.com/casbin/casnode/object"
|
"github.com/casbin/casnode/object"
|
||||||
"github.com/casbin/casnode/util"
|
"github.com/casbin/casnode/util"
|
||||||
"github.com/casdoor/casdoor-go-sdk/casdoorsdk"
|
"github.com/casdoor/casdoor-go-sdk/casdoorsdk"
|
||||||
|
@ -32,11 +32,11 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitAuthConfig() {
|
func InitAuthConfig() {
|
||||||
casdoorEndpoint := strings.TrimRight(beego.AppConfig.String("casdoorEndpoint"), "/")
|
casdoorEndpoint := strings.TrimRight(conf.GetConfigString("casdoorEndpoint"), "/")
|
||||||
clientId := beego.AppConfig.String("clientId")
|
clientId := conf.GetConfigString("clientId")
|
||||||
clientSecret := beego.AppConfig.String("clientSecret")
|
clientSecret := conf.GetConfigString("clientSecret")
|
||||||
casdoorOrganization := beego.AppConfig.String("casdoorOrganization")
|
casdoorOrganization := conf.GetConfigString("casdoorOrganization")
|
||||||
casdoorApplication := beego.AppConfig.String("casdoorApplication")
|
casdoorApplication := conf.GetConfigString("casdoorApplication")
|
||||||
|
|
||||||
casdoorsdk.InitConfig(casdoorEndpoint, clientId, clientSecret, JwtPublicKey, casdoorOrganization, casdoorApplication)
|
casdoorsdk.InitConfig(casdoorEndpoint, clientId, clientSecret, JwtPublicKey, casdoorOrganization, casdoorApplication)
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ package discuzx
|
||||||
import (
|
import (
|
||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/casbin/casnode/conf"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
"xorm.io/xorm"
|
"xorm.io/xorm"
|
||||||
)
|
)
|
||||||
|
@ -25,7 +25,7 @@ import (
|
||||||
var adapter *Adapter
|
var adapter *Adapter
|
||||||
|
|
||||||
func InitAdapter() {
|
func InitAdapter() {
|
||||||
adapter = NewAdapter(beego.AppConfig.String("driverName"), beego.AppConfig.String("dataSourceName"), dbName)
|
adapter = NewAdapter(conf.GetConfigString("driverName"), conf.GetConfigString("dataSourceName"), dbName)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adapter represents the MySQL adapter for policy storage.
|
// Adapter represents the MySQL adapter for policy storage.
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
package discuzx
|
package discuzx
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/astaxie/beego"
|
|
||||||
"github.com/casbin/casnode/object"
|
"github.com/casbin/casnode/object"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -27,6 +26,6 @@ var (
|
||||||
func init() {
|
func init() {
|
||||||
object.InitConfig()
|
object.InitConfig()
|
||||||
|
|
||||||
CasdoorOrganization = beego.AppConfig.String("casdoorOrganization")
|
CasdoorOrganization = conf.GetConfigString("casdoorOrganization")
|
||||||
CasdoorApplication = beego.AppConfig.String("casdoorApplication")
|
CasdoorApplication = conf.GetConfigString("casdoorApplication")
|
||||||
}
|
}
|
||||||
|
|
5
main.go
5
main.go
|
@ -19,6 +19,7 @@ import (
|
||||||
"github.com/astaxie/beego/plugins/cors"
|
"github.com/astaxie/beego/plugins/cors"
|
||||||
_ "github.com/astaxie/beego/session/redis"
|
_ "github.com/astaxie/beego/session/redis"
|
||||||
"github.com/casbin/casnode/casdoor"
|
"github.com/casbin/casnode/casdoor"
|
||||||
|
"github.com/casbin/casnode/conf"
|
||||||
"github.com/casbin/casnode/object"
|
"github.com/casbin/casnode/object"
|
||||||
"github.com/casbin/casnode/routers"
|
"github.com/casbin/casnode/routers"
|
||||||
"github.com/casbin/casnode/service"
|
"github.com/casbin/casnode/service"
|
||||||
|
@ -53,12 +54,12 @@ func main() {
|
||||||
beego.InsertFilter("*", beego.BeforeRouter, routers.Static)
|
beego.InsertFilter("*", beego.BeforeRouter, routers.Static)
|
||||||
beego.InsertFilter("*", beego.BeforeRouter, routers.AutoSigninFilter)
|
beego.InsertFilter("*", beego.BeforeRouter, routers.AutoSigninFilter)
|
||||||
|
|
||||||
if beego.AppConfig.String("redisEndpoint") == "" {
|
if conf.GetConfigString("redisEndpoint") == "" {
|
||||||
beego.BConfig.WebConfig.Session.SessionProvider = "file"
|
beego.BConfig.WebConfig.Session.SessionProvider = "file"
|
||||||
beego.BConfig.WebConfig.Session.SessionProviderConfig = "./tmp"
|
beego.BConfig.WebConfig.Session.SessionProviderConfig = "./tmp"
|
||||||
} else {
|
} else {
|
||||||
beego.BConfig.WebConfig.Session.SessionProvider = "redis"
|
beego.BConfig.WebConfig.Session.SessionProvider = "redis"
|
||||||
beego.BConfig.WebConfig.Session.SessionProviderConfig = beego.AppConfig.String("redisEndpoint")
|
beego.BConfig.WebConfig.Session.SessionProviderConfig = conf.GetConfigString("redisEndpoint")
|
||||||
}
|
}
|
||||||
beego.BConfig.WebConfig.Session.SessionGCMaxLifetime = 3600 * 24 * 30
|
beego.BConfig.WebConfig.Session.SessionGCMaxLifetime = 3600 * 24 * 30
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ import (
|
||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
|
"github.com/casbin/casnode/conf"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
"xorm.io/xorm"
|
"xorm.io/xorm"
|
||||||
)
|
)
|
||||||
|
@ -43,11 +44,11 @@ func InitConfig() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitAdapter() {
|
func InitAdapter() {
|
||||||
adapter = NewAdapter(beego.AppConfig.String("driverName"), beego.AppConfig.String("dataSourceName"), beego.AppConfig.String("dbName"))
|
adapter = NewAdapter(conf.GetConfigString("driverName"), conf.GetConfigDataSourceName(), conf.GetConfigString("dbName"))
|
||||||
adapter.createTable()
|
adapter.createTable()
|
||||||
|
|
||||||
CasdoorOrganization = beego.AppConfig.String("casdoorOrganization")
|
CasdoorOrganization = conf.GetConfigString("casdoorOrganization")
|
||||||
CasdoorApplication = beego.AppConfig.String("casdoorApplication")
|
CasdoorApplication = conf.GetConfigString("casdoorApplication")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adapter represents the MySQL adapter for policy storage.
|
// Adapter represents the MySQL adapter for policy storage.
|
||||||
|
|
|
@ -17,10 +17,10 @@ package object
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/casbin/casnode/conf"
|
||||||
)
|
)
|
||||||
|
|
||||||
var CasdoorStorageEndpoint = beego.AppConfig.String("casdoorStorageEndpoint")
|
var CasdoorStorageEndpoint = conf.GetConfigString("casdoorStorageEndpoint")
|
||||||
|
|
||||||
func getUserAvatar(username string) string {
|
func getUserAvatar(username string) string {
|
||||||
return fmt.Sprintf("%scasdoor/avatar/%s/%s.png", CasdoorStorageEndpoint, CasdoorOrganization, username)
|
return fmt.Sprintf("%scasdoor/avatar/%s/%s.png", CasdoorStorageEndpoint, CasdoorOrganization, username)
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
package object
|
package object
|
||||||
|
|
||||||
import "github.com/astaxie/beego"
|
import "github.com/casbin/casnode/conf"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
DefaultPageNum = 20
|
DefaultPageNum = 20
|
||||||
|
@ -45,8 +45,8 @@ var (
|
||||||
DefaultTopTopicTime = 10 // minutes
|
DefaultTopTopicTime = 10 // minutes
|
||||||
OnlineMemberExpiedTime = 10 // minutes
|
OnlineMemberExpiedTime = 10 // minutes
|
||||||
DefaultUploadFileQuota = 50
|
DefaultUploadFileQuota = 50
|
||||||
Domain = beego.AppConfig.String("domain") // domain
|
Domain = conf.GetConfigString("domain") // domain
|
||||||
AutoSyncPeriodSecond = -1 // auto sync is disabled if < 30
|
AutoSyncPeriodSecond = -1 // auto sync is disabled if < 30
|
||||||
|
|
||||||
DefaultCronJobs = []*CronJob{
|
DefaultCronJobs = []*CronJob{
|
||||||
{
|
{
|
||||||
|
|
|
@ -19,7 +19,7 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/casbin/casnode/conf"
|
||||||
"github.com/casbin/casnode/service"
|
"github.com/casbin/casnode/service"
|
||||||
"github.com/casbin/casnode/util"
|
"github.com/casbin/casnode/util"
|
||||||
)
|
)
|
||||||
|
@ -308,12 +308,12 @@ func AddTopicNotification(objectId int, author, content string) {
|
||||||
|
|
||||||
func sendRemindMail(title string, content string, topicId string, sender string, receiver string, domain string) error {
|
func sendRemindMail(title string, content string, topicId string, sender string, receiver string, domain string) error {
|
||||||
fromName := ""
|
fromName := ""
|
||||||
conf := GetFrontConfById("forumName")
|
frontConfig := GetFrontConfById("forumName")
|
||||||
if conf != nil {
|
if frontConfig != nil {
|
||||||
fromName = conf.Value
|
fromName = frontConfig.Value
|
||||||
}
|
}
|
||||||
if fromName == "" {
|
if fromName == "" {
|
||||||
fromName = beego.AppConfig.String("appname")
|
fromName = conf.GetConfigString("appname")
|
||||||
}
|
}
|
||||||
|
|
||||||
return service.SendRemindMail(fromName, title, content, topicId, sender, receiver, domain)
|
return service.SendRemindMail(fromName, title, content, topicId, sender, receiver, domain)
|
||||||
|
|
|
@ -20,7 +20,7 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/casbin/casnode/conf"
|
||||||
"golang.org/x/net/proxy"
|
"golang.org/x/net/proxy"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ func isAddressOpen(address string) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func getProxyHttpClient() *http.Client {
|
func getProxyHttpClient() *http.Client {
|
||||||
httpProxy := beego.AppConfig.String("httpProxy")
|
httpProxy := conf.GetConfigString("httpProxy")
|
||||||
if httpProxy == "" {
|
if httpProxy == "" {
|
||||||
return &http.Client{}
|
return &http.Client{}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/casbin/casnode/conf"
|
||||||
"github.com/casdoor/casdoor-go-sdk/casdoorsdk"
|
"github.com/casdoor/casdoor-go-sdk/casdoorsdk"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ type Reply struct {
|
||||||
GitterMessageId string `xorm:"varchar(100)" json:"gitterMessageId"`
|
GitterMessageId string `xorm:"varchar(100)" json:"gitterMessageId"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var enableNestedReply, _ = beego.AppConfig.Bool("enableNestedReply")
|
var enableNestedReply, _ = conf.GetConfigBool("enableNestedReply")
|
||||||
|
|
||||||
// GetReplyCount returns all replies num so far, both deleted and not deleted.
|
// GetReplyCount returns all replies num so far, both deleted and not deleted.
|
||||||
func GetReplyCount() int {
|
func GetReplyCount() int {
|
||||||
|
|
|
@ -17,7 +17,7 @@ package object
|
||||||
import (
|
import (
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/casbin/casnode/conf"
|
||||||
"github.com/casdoor/casdoor-go-sdk/casdoorsdk"
|
"github.com/casdoor/casdoor-go-sdk/casdoorsdk"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ func SetUserField(user *casdoorsdk.User, field string, value string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func getInitScore() int {
|
func getInitScore() int {
|
||||||
score, err := strconv.Atoi(beego.AppConfig.String("initScore"))
|
score, err := strconv.Atoi(conf.GetConfigString("initScore"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,8 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
|
||||||
"github.com/astaxie/beego/context"
|
"github.com/astaxie/beego/context"
|
||||||
|
"github.com/casbin/casnode/conf"
|
||||||
)
|
)
|
||||||
|
|
||||||
// var chromeCtx ctx.Context
|
// var chromeCtx ctx.Context
|
||||||
|
@ -69,11 +69,11 @@ func InitChromeDp() {
|
||||||
isChromeInit = true
|
isChromeInit = true
|
||||||
isChromeInstalled = isChromeFound()
|
isChromeInstalled = isChromeFound()
|
||||||
if isChromeInstalled {
|
if isChromeInstalled {
|
||||||
chromeCtxNum, _ := beego.AppConfig.Int("chromeCtxNum")
|
chromeCtxNum, _ := conf.GetConfigInt64("chromeCtxNum")
|
||||||
if chromeCtxNum <= 0 {
|
if chromeCtxNum <= 0 {
|
||||||
chromeCtxNum = 1 // default
|
chromeCtxNum = 1 // default
|
||||||
}
|
}
|
||||||
chromeCtxPool = NewSsrPool(chromeCtxNum)
|
chromeCtxPool = NewSsrPool(int(chromeCtxNum))
|
||||||
}
|
}
|
||||||
go chromeCtxPool.Run() // start ssr_pool
|
go chromeCtxPool.Run() // start ssr_pool
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,9 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
|
||||||
"github.com/astaxie/beego/context"
|
"github.com/astaxie/beego/context"
|
||||||
"github.com/astaxie/beego/logs"
|
"github.com/astaxie/beego/logs"
|
||||||
|
"github.com/casbin/casnode/conf"
|
||||||
"github.com/chromedp/chromedp"
|
"github.com/chromedp/chromedp"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ func NewSsrPool(cap int) *SsrPool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func render(chromeCtx ctx.Context, url string) (string, error) {
|
func render(chromeCtx ctx.Context, url string) (string, error) {
|
||||||
cacheExpireSeconds, err := beego.AppConfig.Int64("cacheExpireSeconds")
|
cacheExpireSeconds, err := conf.GetConfigInt64("cacheExpireSeconds")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue