123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- package internal
- import (
- "fmt"
- "os"
- "time"
- "xugu_license/internal/controllers"
- "xugu_license/internal/global"
- middlewares "xugu_license/internal/middleware"
- "github.com/gin-gonic/gin"
- )
- // SetupRouter 配置Gin路由
- func SetupRouter() *gin.Engine {
- r := gin.Default()
- // 创建按天生成的日志文件
- logFileName := fmt.Sprintf("./logs/GTlicenseGin-%s.log", time.Now().Format("2006-01-02"))
- f, err := os.OpenFile(logFileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
- if err != nil {
- panic(fmt.Sprintf("Failed to open log file: %s", err))
- }
- gin.DefaultWriter = f
- // 自定义日志格式
- r.Use(gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {
- return fmt.Sprintf("%s - [%s] \"%s %s %s %d %s \"%s\" %s\"\n",
- param.ClientIP,
- param.TimeStamp.Format(time.RFC1123),
- param.Method,
- param.Path,
- param.Request.Proto,
- param.StatusCode,
- param.Latency,
- param.Request.UserAgent(),
- param.ErrorMessage,
- )
- }))
- // 中间件配置
- //configureMiddleware(r)
- middlewares.CORSMiddleware()
- // 静态文件服务配置
- configureStaticFileServing(r)
- // 根路径请求处理
- configureRootHandler(r)
- public := r.Group("/api")
- {
- // 定义一个路由来主动触发一次数据抓取
- // r.POST("/capture", func(c *gin.Context) {
- // capture.CaptureOnce(global.OaDB, global.XuguDB)
- // c.JSON(200, gin.H{"status": "Data captured successfully"})
- // })
- public.POST("/register", controllers.Register)
- public.POST("/login", controllers.Login)
- public.GET("/image", func(c *gin.Context) {
- c.File("static/image/xugulogo.png")
- })
- }
- protected := r.Group("/api/admin")
- {
- protected.Use(middlewares.JwtAuthMiddleware()) // 在路由组中使用中间件
- //获取单个用户信息 , 有漏洞,需要判断登录的用户token是否是管理员
- protected.GET("/userInfo", controllers.GetUserInfo)
- //获取所有用户信息
- protected.GET("/userInfoAll", middlewares.PermissionMiddleware(middlewares.ReadUser), controllers.GetAllUserInfo)
- //修改用户信息
- protected.POST("/updateUser", middlewares.PermissionMiddleware(middlewares.UpdateUser), controllers.UpdateUserInfo)
- //删除用户信息
- protected.POST("/deleteUser", middlewares.PermissionMiddleware(middlewares.DeleteUser), controllers.DeleteUser)
- //上传文件
- protected.POST("/upfile", middlewares.PermissionMiddleware(middlewares.UploadLicense), controllers.UploadfileHandler)
- //lincense
- //protected.GET("/LicenseInfo", controllers.GetLicenseInfo)
- protected.POST("/distributeLicense", middlewares.PermissionMiddleware(middlewares.DispatLicense), controllers.DistributeOALicenseController)
- //分发按钮校验
- protected.GET("/GetDistributeButtenCheckController", middlewares.PermissionMiddleware(middlewares.DispatLicense), controllers.GetDistributeButtenCheckController)
- //分发给用户
- protected.POST("/DistributeLicenseToUser", middlewares.PermissionMiddleware(middlewares.DispatLicense), controllers.DistributeLicenseToUsersController)
- //分发给邮箱
- protected.POST("/DistributeLicenseToEmail", middlewares.PermissionMiddleware(middlewares.DispatLicense), controllers.DistributeLicenseToEmailController)
- //上传文件的license 弃用
- protected.GET("/distributeLicenseByUserInfo", middlewares.PermissionMiddleware(middlewares.DispatLicense), controllers.DistributeLicenseByUser)
- //获取指定license信息
- protected.GET("/GetSingleSlicenseInfo", middlewares.PermissionMiddleware(middlewares.ReadLicense), controllers.GetSingleLicenseInfoController)
- //获取全部license信息 new
- protected.GET("/GetAllLicenseInfo", middlewares.PermissionMiddleware(middlewares.ReadLicense), controllers.GetAllLicenseInfoController)
- //主动抓取一次oalicense到支撑库
- protected.GET("/GetCaptureLicenseOnce", middlewares.PermissionMiddleware(middlewares.CaptureLicenseOnceToDb), controllers.CaptureLicenseOnceToDb)
- //搜索license
- protected.GET("/GetSearchLicInfoToDb", middlewares.PermissionMiddleware(middlewares.ReadLicense), controllers.SearchLicInfoToDb)
- protected.POST("/GetConditionalSearch", middlewares.PermissionMiddleware(middlewares.ReadLicense), controllers.ConditionalSearchController)
- //生成license new
- protected.POST("/GenerateLicense", middlewares.PermissionMiddleware(middlewares.GenerateLicense), controllers.GenerateOALicenseStrController)
- protected.POST("/GetlicenseRecord", middlewares.PermissionMiddleware(middlewares.ReadLicense), controllers.GetlicenseRecordInfo)
- //protected.POST("/GetlicenseRecordInfoByUser", middlewares.PermissionMiddleware(middlewares.ReadLicense), controllers.GetlicenseRecordInfoByUser)
- protected.POST("/UpdateLicense", middlewares.PermissionMiddleware(middlewares.UpdateLicense), controllers.UpdateLicense)
- protected.POST("/deleteLicRow", middlewares.PermissionMiddleware(middlewares.DeleteLicense), controllers.DelLicenseInfoRow)
- //role
- protected.POST("/GetSelfRoles", controllers.GetRoles)
- protected.POST("/GetRoles", middlewares.PermissionMiddleware(middlewares.GetRole), controllers.GetRoles)
- protected.GET("/GetRoleNames", controllers.GetRoleNames)
- protected.POST("/CreateRole", middlewares.PermissionMiddleware(middlewares.CreateRole), controllers.CreateRole)
- protected.POST("/UpdateRole", middlewares.PermissionMiddleware(middlewares.UpdateRole), controllers.UpdateRole)
- protected.POST("/DeleteRole", middlewares.PermissionMiddleware(middlewares.DeleteRole), controllers.DeleteRole)
- }
- return r
- }
- // configureStaticFileServing 配置静态文件服务
- func configureStaticFileServing(r *gin.Engine) {
- r.Static("/static", "./static")
- }
- // configureRootHandler 配置根路径请求处理
- func configureRootHandler(r *gin.Engine) {
- r.GET("/", func(c *gin.Context) {
- c.File("./static/login/login.html")
- })
- }
- // HttpController 启动 HTTP 服务器
- func HttpController() {
- r := SetupRouter()
- ipPort := fmt.Sprintf("%s:%s", global.Cfg.App.Ip, global.Cfg.App.Port)
- fmt.Println("ipPort:", ipPort)
- err := r.Run(ipPort)
- if err != nil {
- panic(err)
- }
- global.Logger.Info("Server is running on port", fmt.Sprintf("%s:%s", global.Cfg.App.Ip, global.Cfg.App.Port))
- }
|