lucky/web/ssl.go

103 lines
2.3 KiB
Go
Raw Normal View History

2022-10-26 18:38:27 +08:00
package web
import (
"fmt"
"log"
"net/http"
"github.com/gdy666/lucky/config"
"github.com/gin-gonic/gin"
)
func addSSL(c *gin.Context) {
var requestObj config.SSLCertficate
err := c.BindJSON(&requestObj)
if err != nil {
c.JSON(http.StatusOK, gin.H{"ret": 1, "msg": "请求解析出错"})
return
}
err = requestObj.Init()
if err != nil {
log.Printf("addSSL requestObj.Init() error:%s", err.Error())
c.JSON(http.StatusOK, gin.H{"ret": 2, "msg": "证书和Key有误!"})
return
}
//fmt.Printf("CertsInfo:%v\n", *requestObj.CertsInfo)
err = config.SSLCertficateListAdd(&requestObj)
if err != nil {
log.Printf("config.SSLCertficateListAdd error:%s", err.Error())
c.JSON(http.StatusOK, gin.H{"ret": 2, "msg": fmt.Sprintf("添加SSL证书出错!:%s", err.Error())})
return
}
c.JSON(http.StatusOK, gin.H{"ret": 0})
}
type sslResInfo struct {
Key string `json:"Key"`
Remark string `json:"Remark"`
Enable bool `json:"Enable"`
AddTime string `json:"AddTime"`
CertsInfo *[]config.CertInfo `json:"CertsInfo"`
}
func getSSLCertficateList(c *gin.Context) {
rawList := config.GetSSLCertficateList()
var res []sslResInfo
for i := range rawList {
info := sslResInfo{
Key: rawList[i].Key,
Remark: rawList[i].Remark,
Enable: rawList[i].Enable,
AddTime: rawList[i].AddTime,
CertsInfo: rawList[i].CertsInfo,
}
res = append(res, info)
}
c.JSON(http.StatusOK, gin.H{"ret": 0, "list": res})
}
func alterSSLCertficate(c *gin.Context) {
key := c.Query("key")
field := c.Query("field")
value := c.Query("value")
var err error
switch field {
case "enable":
{
enable := false
if value == "true" {
enable = true
}
err = config.SSLCertficateEnable(key, enable)
}
case "remark":
{
err = config.SSLCertficateAlterRemark(key, value)
}
default:
err = fmt.Errorf("不支持修改的字段:%s", field)
}
if err != nil {
c.JSON(http.StatusOK, gin.H{"ret": 1, "msg": err.Error()})
return
}
c.JSON(http.StatusOK, gin.H{"ret": 0})
}
func deleteSSLCertficate(c *gin.Context) {
key := c.Query("key")
err := config.SSLCertficateListDelete(key)
if err != nil {
c.JSON(http.StatusOK, gin.H{"ret": 1, "msg": err.Error()})
return
}
c.JSON(http.StatusOK, gin.H{"ret": 0})
}