refactor code

This commit is contained in:
hoangvv 2024-11-22 17:29:12 +07:00
parent ee03f5401b
commit 79a4456a73
17 changed files with 115 additions and 62 deletions

View File

@ -23,7 +23,7 @@ build_service:
package: package:
cp $(CUR_DIR)/dist/$(SERVICE)-$(ARCHITECHTURE)_$(OS)_$(ARCHITECHTURE)_$(VERSION)/$(BIN_PATH)/$(SERVICE) $(CUR_DIR)/$(BIN_PATH) \ cp $(CUR_DIR)/dist/$(SERVICE)-$(ARCHITECHTURE)_$(OS)_$(ARCHITECHTURE)_$(VERSION)/$(BIN_PATH)/$(SERVICE) $(CUR_DIR)/$(BIN_PATH) \
&& tar -czvf $(PACKAGE_NAME).tar.gz $(CUR_DIR)/$(BUILD_PATH) && tar -czvf $(PACKAGE_NAME).tar.gz $(BUILD_PATH)
archive_package: archive_package:
@mkdir -p $(CUR_DIR)/$(ARCHIVE_PATH)/$(CUR_TAG) @mkdir -p $(CUR_DIR)/$(ARCHIVE_PATH)/$(CUR_TAG)

View File

View File

0
build/scripts/setup/script.d/02-setup-user-service.sh Normal file → Executable file
View File

View File

16
build/sysroot/etc/casaos/user-service.conf.sample Normal file → Executable file
View File

@ -7,6 +7,16 @@ LogSaveName = user-service
LogFileExt = log LogFileExt = log
DBPath = /var/lib/casaos/db DBPath = /var/lib/casaos/db
UserDataPath = /var/lib/casaos UserDataPath = /var/lib/casaos
OMVServer = http://10.0.0.4:1081/rpc.php
SecretKey = N1PCdw3M2B1TfJhoaY2mL736p2vCUc47 [oidc]
AuthentikServer = http://10.0.0.26:9000 AuthServer = https://account.nextzenvn.com
ClientID = WzN5QB9e0LfCSAYTB542RLpIGKcAWNNZgVbeTLaz
ClientSecret = D1mbEz1VHkPnhvMGPfj5aAmjOuZ1ZIYGm7qAReMCivdXwiQ60BJoa4cpdX5m9Z5aKgtR8d56xgmYAy7TR86MEV6zJXfjxy2lf0TTAPXc8ftEcst8fPi6B9IFe3aDBo8x
AuthURL = https://account.nextzenvn.com/application/o/nextzenos/
CallbackURL = https://home.nextzenvn.com/v1/users/oidc/callback
[nextweb]
Server = https://127.0.0.1:10086
UserName = nextzen
Password = Smartyourlife123@*
EntranceCode =

View File

@ -0,0 +1,14 @@
[Unit]
After=casaos-message-bus.service
ConditionFileNotEmpty=/etc/casaos/user-service.conf
Description=CasaOS User Service
[Service]
ExecStartPre=/usr/bin/casaos-user-service -v
ExecStart=/usr/bin/casaos-user-service -c /etc/casaos/user-service.conf
PIDFile=/var/run/casaos/user-service.pid
Restart=always
Type=notify
[Install]
WantedBy=multi-user.target

View File

Binary file not shown.

View File

@ -5,16 +5,27 @@ type CommonModel struct {
} }
type APPModel struct { type APPModel struct {
LogPath string LogPath string
LogSaveName string LogSaveName string
LogFileExt string LogFileExt string
UserDataPath string UserDataPath string
DBPath string DBPath string
OMVServer string
AuthentikServer string
SecretKey string
} }
type OIDCModel struct {
AuthServer string
ClientID string
ClientSecret string
AuthURL string
CallbackURL string
}
type NextWebModel struct {
Server string
UserName string
Password string
EntranceCode string
}
type Result struct { type Result struct {
Success int `json:"success" example:"200"` Success int `json:"success" example:"200"`
Message string `json:"message" example:"ok"` Message string `json:"message" example:"ok"`

View File

@ -24,6 +24,19 @@ var (
LogSaveName: "user", LogSaveName: "user",
LogFileExt: "log", LogFileExt: "log",
} }
OIDCInfo = &model.OIDCModel{
AuthServer: "",
ClientID: "",
ClientSecret: "",
AuthURL: "",
CallbackURL: "",
}
NextWebInfo = &model.NextWebModel{
Server: "",
UserName: "",
Password: "",
EntranceCode: "",
}
Cfg *ini.File Cfg *ini.File
ConfigFilePath string ConfigFilePath string
@ -60,8 +73,11 @@ func InitSetup(config string, sample string) {
os.Exit(1) os.Exit(1)
} }
mapTo("oidc", OIDCInfo)
mapTo("nextweb", NextWebInfo)
mapTo("common", CommonInfo) mapTo("common", CommonInfo)
mapTo("app", AppInfo) mapTo("app", AppInfo)
} }
func SaveSetup(config string) { func SaveSetup(config string) {

View File

@ -15,15 +15,14 @@ import (
"crypto/md5" "crypto/md5"
"crypto/rand" "crypto/rand"
"encoding/hex" "encoding/hex"
"github.com/KaySar12/NextZen-UserService/pkg/config"
) )
var ( var (
// We're using a 32 byte long secret key. // We're using a 32 byte long secret key.
// This is probably something you generate first // This is probably something you generate first
// then put into and environment variable. // then put into and environment variable.
secretKey string = config.AppInfo.SecretKey // secretKey string = config.AppInfo.SecretKey
secretKey string = ""
) )
func GetMD5ByStr(str string) string { func GetMD5ByStr(str string) string {

View File

@ -46,15 +46,11 @@ import (
) )
var ( var (
authServer = "https://account.nextzenvn.com" authServer string
clientID = "WzN5QB9e0LfCSAYTB542RLpIGKcAWNNZgVbeTLaz" clientID string
clientSecret = "D1mbEz1VHkPnhvMGPfj5aAmjOuZ1ZIYGm7qAReMCivdXwiQ60BJoa4cpdX5m9Z5aKgtR8d56xgmYAy7TR86MEV6zJXfjxy2lf0TTAPXc8ftEcst8fPi6B9IFe3aDBo8x" clientSecret string
authURL = "https://account.nextzenvn.com/application/o/nextzenos/" authURL string
callbackURL = "https://home.nextzenvn.com/v1/users/oidc/callback" callbackURL string
onePanelServer = "https://web.nextzenvn.com/"
onePanelName = "nextzen"
onePanelPassword = "Smartyourlife123@*"
onePanelEntranceCode = ""
) )
type OIDCSetting struct { type OIDCSetting struct {
@ -145,8 +141,8 @@ func ExternalAPIMiddleware(c *gin.Context) {
} }
func OnePanelLogin(c *gin.Context) error { func OnePanelLogin(c *gin.Context) error {
cred := model2.OnePanelCredentials{ cred := model2.OnePanelCredentials{
Name: onePanelName, Name: config.NextWebInfo.UserName,
Password: onePanelPassword, Password: config.NextWebInfo.Password,
IgnoreCaptcha: true, IgnoreCaptcha: true,
Captcha: "", Captcha: "",
CaptchaID: "", CaptchaID: "",
@ -154,10 +150,10 @@ func OnePanelLogin(c *gin.Context) error {
Language: "en", Language: "en",
} }
response, cookies, err := service.MyService.OnePanel().Login(cred, onePanelServer, onePanelEntranceCode) response, cookies, err := service.MyService.OnePanel().Login(cred, config.NextWebInfo.Server, config.NextWebInfo.EntranceCode)
fmt.Println(response) fmt.Println(response)
if err != nil { if err != nil {
logger.Error("OnePanel login failed", zap.Error(err)) logger.Error("NextWeb login failed", zap.Error(err))
return err return err
} }
@ -195,7 +191,7 @@ func OnePanelUpdateProxyWebsite(c *gin.Context) {
headers[key] = value[0] headers[key] = value[0]
} }
var search model2.SearchWebsiteResponse var search model2.SearchWebsiteResponse
search, err := service.MyService.OnePanel().SearchWebsite(searchParam, onePanelServer, headers) search, err := service.MyService.OnePanel().SearchWebsite(searchParam, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -207,7 +203,7 @@ func OnePanelUpdateProxyWebsite(c *gin.Context) {
var proxy model2.ProxyWebsiteRequest var proxy model2.ProxyWebsiteRequest
proxy.ID = search.Data.Items[0].ID proxy.ID = search.Data.Items[0].ID
var proxyResult model2.ProxyWebsiteResponse var proxyResult model2.ProxyWebsiteResponse
proxyResult, err := service.MyService.OnePanel().GetProxyWebsite(proxy, onePanelServer, headers) proxyResult, err := service.MyService.OnePanel().GetProxyWebsite(proxy, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -219,7 +215,7 @@ func OnePanelUpdateProxyWebsite(c *gin.Context) {
updateProxy = proxyResult.Data[0] updateProxy = proxyResult.Data[0]
updateProxy.Operate = "edit" updateProxy.Operate = "edit"
updateProxy.ProxyPass = protocol + "://" + hostname + ":" + port updateProxy.ProxyPass = protocol + "://" + hostname + ":" + port
updateProxyResult, err := service.MyService.OnePanel().UpdateProxyWebsite(updateProxy, onePanelServer, headers) updateProxyResult, err := service.MyService.OnePanel().UpdateProxyWebsite(updateProxy, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -260,7 +256,7 @@ func OnePanelUpdateWebsite(c *gin.Context) {
searchParam.OrderBy = "created_at" searchParam.OrderBy = "created_at"
searchParam.Order = "null" searchParam.Order = "null"
searchParam.WebsiteGroupID = 0 searchParam.WebsiteGroupID = 0
search, err := service.MyService.OnePanel().SearchWebsite(searchParam, onePanelServer, headers) search, err := service.MyService.OnePanel().SearchWebsite(searchParam, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -273,7 +269,7 @@ func OnePanelUpdateWebsite(c *gin.Context) {
var proxy model2.ProxyWebsiteRequest var proxy model2.ProxyWebsiteRequest
proxy.ID = search.Data.Items[0].ID proxy.ID = search.Data.Items[0].ID
var proxyResult model2.ProxyWebsiteResponse var proxyResult model2.ProxyWebsiteResponse
proxyResult, err := service.MyService.OnePanel().GetProxyWebsite(proxy, onePanelServer, headers) proxyResult, err := service.MyService.OnePanel().GetProxyWebsite(proxy, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -287,7 +283,7 @@ func OnePanelUpdateWebsite(c *gin.Context) {
updateProxy.Operate = "edit" updateProxy.Operate = "edit"
updateProxy.ProxyPass = "http://" + hostname + ":" + port updateProxy.ProxyPass = "http://" + hostname + ":" + port
updateProxyResult, err := service.MyService.OnePanel().UpdateProxyWebsite(updateProxy, onePanelServer, headers) updateProxyResult, err := service.MyService.OnePanel().UpdateProxyWebsite(updateProxy, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -304,7 +300,7 @@ func OnePanelUpdateWebsite(c *gin.Context) {
} }
searchSSLParam.Page = 0 searchSSLParam.Page = 0
searchSSLParam.PageSize = 0 searchSSLParam.PageSize = 0
searchSSL, err := service.MyService.OnePanel().SearchWebsiteSSl(searchSSLParam, onePanelServer, headers) searchSSL, err := service.MyService.OnePanel().SearchWebsiteSSl(searchSSLParam, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -404,7 +400,7 @@ func OnePanelCreateWebsite(c *gin.Context) {
searchParam.OrderBy = "created_at" searchParam.OrderBy = "created_at"
searchParam.Order = "null" searchParam.Order = "null"
searchParam.WebsiteGroupID = 0 searchParam.WebsiteGroupID = 0
search, err := service.MyService.OnePanel().SearchWebsite(searchParam, onePanelServer, headers) search, err := service.MyService.OnePanel().SearchWebsite(searchParam, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -413,7 +409,7 @@ func OnePanelCreateWebsite(c *gin.Context) {
}) })
} }
if search.Data.Total == 0 { if search.Data.Total == 0 {
response, err := service.MyService.OnePanel().CreateWebsite(website, onePanelServer, headers) response, err := service.MyService.OnePanel().CreateWebsite(website, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -421,7 +417,7 @@ func OnePanelCreateWebsite(c *gin.Context) {
Message: common_err.GetMsg(common_err.SERVICE_ERROR), Message: common_err.GetMsg(common_err.SERVICE_ERROR),
}) })
} }
search, err := service.MyService.OnePanel().SearchWebsite(searchParam, onePanelServer, headers) search, err := service.MyService.OnePanel().SearchWebsite(searchParam, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -435,7 +431,7 @@ func OnePanelCreateWebsite(c *gin.Context) {
searchSSL.Page = 0 searchSSL.Page = 0
searchSSL.PageSize = 0 searchSSL.PageSize = 0
sslId := -1 sslId := -1
ssl, err := service.MyService.OnePanel().SearchWebsiteSSl(searchSSL, onePanelServer, headers) ssl, err := service.MyService.OnePanel().SearchWebsiteSSl(searchSSL, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -481,7 +477,7 @@ func OnePanelCreateWebsite(c *gin.Context) {
searchAcme.Page = 0 searchAcme.Page = 0
searchAcme.PageSize = 0 searchAcme.PageSize = 0
if sslProvider == "http" { if sslProvider == "http" {
acme, err := service.MyService.OnePanel().AcmeAccountSearch(searchAcme, onePanelServer, headers) acme, err := service.MyService.OnePanel().AcmeAccountSearch(searchAcme, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -492,7 +488,7 @@ func OnePanelCreateWebsite(c *gin.Context) {
} }
acmeId = acme.Data.Items[0].ID acmeId = acme.Data.Items[0].ID
} }
search, err := service.MyService.OnePanel().SearchWebsite(searchParam, onePanelServer, headers) search, err := service.MyService.OnePanel().SearchWebsite(searchParam, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -541,7 +537,7 @@ func IssueSelfSignedCert(domain string, websiteId int, headers map[string]string
var searchSelfSignedCert model2.SelfSignedCertSearchRequest var searchSelfSignedCert model2.SelfSignedCertSearchRequest
searchSelfSignedCert.Page = 1 searchSelfSignedCert.Page = 1
searchSelfSignedCert.PageSize = 1000 searchSelfSignedCert.PageSize = 1000
selfsignedCert, err := service.MyService.OnePanel().SelfSignedCertSearch(searchSelfSignedCert, onePanelServer, headers) selfsignedCert, err := service.MyService.OnePanel().SelfSignedCertSearch(searchSelfSignedCert, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
return 0, err return 0, err
} }
@ -555,7 +551,7 @@ func IssueSelfSignedCert(domain string, websiteId int, headers map[string]string
createParam.OrganizationUint = "nextweb" createParam.OrganizationUint = "nextweb"
createParam.Province = "HaDong" createParam.Province = "HaDong"
createParam.City = "HaNoi" createParam.City = "HaNoi"
createNewSelfSignCert, err := service.MyService.OnePanel().CreateSelfSignedCert(createParam, onePanelServer, headers) createNewSelfSignCert, err := service.MyService.OnePanel().CreateSelfSignedCert(createParam, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
return 0, err return 0, err
} }
@ -574,7 +570,7 @@ func IssueSelfSignedCert(domain string, websiteId int, headers map[string]string
issueSelfSignedCertReq.Description = "" issueSelfSignedCertReq.Description = ""
issueSelfSignedCertReq.ExecShell = false issueSelfSignedCertReq.ExecShell = false
issueSelfSignedCertReq.Shell = "" issueSelfSignedCertReq.Shell = ""
issueSelfSignedCertRes, err := service.MyService.OnePanel().IssueSelfSignedCert(issueSelfSignedCertReq, onePanelServer, headers) issueSelfSignedCertRes, err := service.MyService.OnePanel().IssueSelfSignedCert(issueSelfSignedCertReq, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
return 0, err return 0, err
} }
@ -582,7 +578,7 @@ func IssueSelfSignedCert(domain string, websiteId int, headers map[string]string
var searchSSL model2.SearchSSLRequest var searchSSL model2.SearchSSLRequest
searchSSL.Page = 0 searchSSL.Page = 0
searchSSL.PageSize = 0 searchSSL.PageSize = 0
ssl, err := service.MyService.OnePanel().SearchWebsiteSSl(searchSSL, onePanelServer, headers) ssl, err := service.MyService.OnePanel().SearchWebsiteSSl(searchSSL, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
return 0, err return 0, err
} }
@ -598,7 +594,7 @@ func OnePanelApplyWebsiteSSl(domain string, websiteId int, headers map[string]st
var searchAcme model2.AcmeSearchRequest var searchAcme model2.AcmeSearchRequest
searchAcme.Page = 0 searchAcme.Page = 0
searchAcme.PageSize = 0 searchAcme.PageSize = 0
acme, err := service.MyService.OnePanel().AcmeAccountSearch(searchAcme, onePanelServer, headers) acme, err := service.MyService.OnePanel().AcmeAccountSearch(searchAcme, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
return 0, err return 0, err
} }
@ -620,7 +616,7 @@ func OnePanelApplyWebsiteSSl(domain string, websiteId int, headers map[string]st
createSSL.Nameserver2 = "" createSSL.Nameserver2 = ""
createSSL.ExecShell = false createSSL.ExecShell = false
createSSL.Shell = "" createSSL.Shell = ""
createSSLRes, err := service.MyService.OnePanel().ApplyWebsiteSSl(createSSL, onePanelServer, headers) createSSLRes, err := service.MyService.OnePanel().ApplyWebsiteSSl(createSSL, config.NextWebInfo.Server, headers)
return createSSLRes.Data.ID, err return createSSLRes.Data.ID, err
} }
return 0, err return 0, err
@ -640,7 +636,7 @@ func UpdateWebsiteHttps(enable bool, acmeAccountID int, websiteSSLID int, websit
updateConfig.Hsts = true updateConfig.Hsts = true
updateConfig.Algorithm = "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK:!KRB5:!SRP:!CAMELLIA:!SEED" updateConfig.Algorithm = "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK:!KRB5:!SRP:!CAMELLIA:!SEED"
updateConfig.SSLProtocol = append(updateConfig.SSLProtocol, "TLSv1.3", "TLSv1.2", "TLSv1.1", "TLSv1") updateConfig.SSLProtocol = append(updateConfig.SSLProtocol, "TLSv1.3", "TLSv1.2", "TLSv1.1", "TLSv1")
updateWebsite, err := service.MyService.OnePanel().UpdateWebsiteProtocol(updateConfig, onePanelServer, headers) updateWebsite, err := service.MyService.OnePanel().UpdateWebsiteProtocol(updateConfig, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
return model2.GenericResponse{}, err return model2.GenericResponse{}, err
} }
@ -671,7 +667,7 @@ func OnePanelDeleteWebsite(c *gin.Context) {
for key, value := range c.Request.Header { for key, value := range c.Request.Header {
headers[key] = value[0] headers[key] = value[0]
} }
search, err := service.MyService.OnePanel().SearchWebsite(searchParam, onePanelServer, headers) search, err := service.MyService.OnePanel().SearchWebsite(searchParam, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -685,7 +681,7 @@ func OnePanelDeleteWebsite(c *gin.Context) {
delete.DeleteApp = false delete.DeleteApp = false
delete.DeleteBackup = false delete.DeleteBackup = false
delete.ForceDelete = false delete.ForceDelete = false
response, err := service.MyService.OnePanel().DeleteWebsite(delete, onePanelServer, headers) response, err := service.MyService.OnePanel().DeleteWebsite(delete, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -705,7 +701,7 @@ func OnePanelDeleteWebsite(c *gin.Context) {
searchSSLParam.AcmeAccountID = "" searchSSLParam.AcmeAccountID = ""
searchSSLParam.Page = 0 searchSSLParam.Page = 0
searchSSLParam.PageSize = 0 searchSSLParam.PageSize = 0
searchSSL, err := service.MyService.OnePanel().SearchWebsiteSSl(searchSSLParam, onePanelServer, headers) searchSSL, err := service.MyService.OnePanel().SearchWebsiteSSl(searchSSLParam, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -721,7 +717,7 @@ func OnePanelDeleteWebsite(c *gin.Context) {
} }
} }
if len(deleleSSL.Ids) > 0 { if len(deleleSSL.Ids) > 0 {
deleteResult, err := service.MyService.OnePanel().DeleteWebsiteSSL(deleleSSL, onePanelServer, headers) deleteResult, err := service.MyService.OnePanel().DeleteWebsiteSSL(deleleSSL, config.NextWebInfo.Server, headers)
if err != nil { if err != nil {
c.JSON(common_err.SERVICE_ERROR, c.JSON(common_err.SERVICE_ERROR,
model.Result{ model.Result{
@ -854,10 +850,10 @@ func InitOIDC() {
successCount++ successCount++
// TODO will enable in production // TODO will enable in production
// Exponential backoff with a cap // Exponential backoff with a cap
// sleepTime = minSleep * time.Duration(successCount) sleepTime = minSleep * time.Duration(successCount)
if sleepTime > maxSleep { if sleepTime > maxSleep {
// TODO will enable in production // TODO will enable in production
// sleepTime = maxSleep sleepTime = maxSleep
} }
} else { } else {
@ -868,7 +864,7 @@ func InitOIDC() {
sleepTime = minSleep * time.Duration(failCount) sleepTime = minSleep * time.Duration(failCount)
if failCount > maxRetryBackoff { if failCount > maxRetryBackoff {
// TODO will enable in production // TODO will enable in production
// sleepTime = minSleep * time.Duration(maxRetryBackoff) sleepTime = minSleep * time.Duration(maxRetryBackoff)
} }
log.Printf("OIDC initialization failed: %v. Retrying in %v", err, sleepTime) log.Printf("OIDC initialization failed: %v. Retrying in %v", err, sleepTime)
} }
@ -898,6 +894,12 @@ func OIDC() error {
authServer = authentik.Issuer authServer = authentik.Issuer
authURL = authentik.AuthUrl authURL = authentik.AuthUrl
callbackURL = authentik.CallbackUrl callbackURL = authentik.CallbackUrl
} else {
clientID = config.OIDCInfo.ClientID
clientSecret = config.OIDCInfo.ClientSecret
authServer = config.OIDCInfo.AuthServer
authURL = config.OIDCInfo.AuthURL
callbackURL = config.OIDCInfo.CallbackURL
} }
ctx := context.Background() ctx := context.Background()
provider, err := oidc.NewProvider(ctx, authURL) provider, err := oidc.NewProvider(ctx, authURL)
@ -910,7 +912,6 @@ func OIDC() error {
RedirectURL: callbackURL, RedirectURL: callbackURL,
Endpoint: provider.Endpoint(), Endpoint: provider.Endpoint(),
Scopes: []string{oidc.ScopeOpenID, "profile", "email", "offline_access", "goauthentik.io/api"}, Scopes: []string{oidc.ScopeOpenID, "profile", "email", "offline_access", "goauthentik.io/api"},
//add offline access for refresh token
} }
return nil return nil
} }
@ -1128,7 +1129,7 @@ func determineUserRole(isSuperuser bool) string {
return "user" return "user"
} }
func OnePanelHealthCheck(c *gin.Context) { func OnePanelHealthCheck(c *gin.Context) {
status, err := service.MyService.OnePanel().HealthCheck(onePanelServer) status, err := service.MyService.OnePanel().HealthCheck(config.NextWebInfo.Server)
if err != nil || status == "Offline" { if err != nil || status == "Offline" {
c.JSON(http.StatusOK, model.Result{Success: common_err.OIDC_OFFLINE, Message: common_err.GetMsg(common_err.OIDC_OFFLINE), Data: "Offline"}) c.JSON(http.StatusOK, model.Result{Success: common_err.OIDC_OFFLINE, Message: common_err.GetMsg(common_err.OIDC_OFFLINE), Data: "Offline"})
return return

View File

@ -9,7 +9,6 @@ import (
"net/http" "net/http"
"os" "os"
"github.com/KaySar12/NextZen-UserService/pkg/config"
"github.com/KaySar12/NextZen-UserService/service/model" "github.com/KaySar12/NextZen-UserService/service/model"
) )
@ -36,7 +35,8 @@ func (o *omvService) LoginSession(username string, password string) (string, []*
}, },
}) })
responseBody := bytes.NewBuffer(postBody) responseBody := bytes.NewBuffer(postBody)
response, err := http.Post(config.AppInfo.OMVServer, "application/json", responseBody) // response, err := http.Post(config.AppInfo.OMVServer, "application/json", responseBody)
response, err := http.Post("", "application/json", responseBody)
cookies := response.Cookies() cookies := response.Cookies()
if err != nil { if err != nil {
fmt.Print(err.Error()) fmt.Print(err.Error())
@ -55,7 +55,8 @@ func (o *omvService) Logout(sessionID string) (string, error) {
"params": nil, "params": nil,
}) })
responseBody := bytes.NewBuffer(postBody) responseBody := bytes.NewBuffer(postBody)
req, err := http.NewRequest("POST", config.AppInfo.OMVServer, responseBody) //req, err := http.NewRequest("POST", config.AppInfo.OMVServer, responseBody)
req, err := http.NewRequest("POST", "", responseBody)
if err != nil { if err != nil {
return "", fmt.Errorf("error creating request: %v", err) return "", fmt.Errorf("error creating request: %v", err)
} }
@ -89,7 +90,7 @@ func (o *omvService) AuthUser(username string, password string, sessionID string
}, },
}) })
responseBody := bytes.NewBuffer(postBody) responseBody := bytes.NewBuffer(postBody)
req, err := http.NewRequest("POST", config.AppInfo.OMVServer, responseBody) req, err := http.NewRequest("POST", "", responseBody)
if err != nil { if err != nil {
return "", fmt.Errorf("error creating request: %v", err) return "", fmt.Errorf("error creating request: %v", err)
} }
@ -125,7 +126,8 @@ func (o *omvService) GetUser(username string, sessionID string) (string, error)
responseBody := bytes.NewBuffer(postBody) responseBody := bytes.NewBuffer(postBody)
// Create HTTP request and set session ID header // Create HTTP request and set session ID header
req, err := http.NewRequest("POST", config.AppInfo.OMVServer, responseBody) // req, err := http.NewRequest("POST", config.AppInfo.OMVServer, responseBody)
req, err := http.NewRequest("POST", "", responseBody)
if err != nil { if err != nil {
return "", fmt.Errorf("error creating request: %v", err) return "", fmt.Errorf("error creating request: %v", err)
} }