router.go 978 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package routers
  2. import (
  3. "duoduo/apis/forward"
  4. "duoduo/apis/pdd"
  5. "duoduo/apis/user"
  6. "duoduo/conf"
  7. "github.com/gin-gonic/gin"
  8. "github.com/unrolled/secure"
  9. )
  10. func InitRouter() {
  11. r := gin.New()
  12. if conf.Model == "master" {
  13. r.Use(TlsHandler())
  14. }
  15. r.GET("/", func(c *gin.Context) { c.File("./root.txt") })
  16. r.GET("/root.txt", func(c *gin.Context) { c.File("./root.txt") })
  17. r2 := r.Group("/")
  18. {
  19. pdd.InitPddDdkRouter(r2)
  20. pdd.InitSetRouter(r2)
  21. user.InitUserRouter(r2)
  22. forward.InitForwardRouter(r2)
  23. }
  24. if conf.Model == "master" {
  25. r.RunTLS(":443", "./shisanmiao.com.pem", "./shisanmiao.com.key")
  26. } else {
  27. _ = r.Run(":8081")
  28. }
  29. }
  30. func TlsHandler() gin.HandlerFunc {
  31. return func(c *gin.Context) {
  32. secureMiddleware := secure.New(secure.Options{
  33. SSLRedirect: true,
  34. SSLHost: "localhost:8080",
  35. })
  36. err := secureMiddleware.Process(c.Writer, c.Request)
  37. // If there was an error, do not continue.
  38. if err != nil {
  39. return
  40. }
  41. c.Next()
  42. }
  43. }