init bind app's middleware to router node
()
| 533 | |
| 534 | // init bind app's middleware to router node |
| 535 | func (app *DotWeb) initBindMiddleware() { |
| 536 | router := app.HttpServer.Router().(*router) |
| 537 | // bind app middlewares |
| 538 | for fullExpress, _ := range router.allRouterExpress { |
| 539 | expresses := strings.Split(fullExpress, routerExpressSplit) |
| 540 | if len(expresses) < 2 { |
| 541 | continue |
| 542 | } |
| 543 | node := router.getNode(expresses[0], expresses[1]) |
| 544 | if node == nil { |
| 545 | continue |
| 546 | } |
| 547 | |
| 548 | node.appMiddlewares = app.Middlewares |
| 549 | for _, m := range node.appMiddlewares { |
| 550 | if m.HasExclude() && m.ExistsExcludeRouter(node.fullPath) { |
| 551 | app.Logger().Debug("DotWeb initBindMiddleware [app] "+fullExpress+" "+reflect.TypeOf(m).String()+" exclude", LogTarget_HttpServer) |
| 552 | node.hasExcludeMiddleware = true |
| 553 | } else { |
| 554 | app.Logger().Debug("DotWeb initBindMiddleware [app] "+fullExpress+" "+reflect.TypeOf(m).String()+" match", LogTarget_HttpServer) |
| 555 | } |
| 556 | } |
| 557 | if len(node.middlewares) > 0 { |
| 558 | firstMiddleware := &xMiddleware{} |
| 559 | firstMiddleware.SetNext(node.middlewares[0]) |
| 560 | node.middlewares = append([]Middleware{firstMiddleware}, node.middlewares...) |
| 561 | } |
| 562 | } |
| 563 | |
| 564 | // bind group middlewares |
| 565 | for _, g := range app.HttpServer.groups { |
| 566 | if len(g.middlewares) <= 0 { |
| 567 | continue |
| 568 | } |
| 569 | for fullExpress, _ := range g.allRouterExpress { |
| 570 | expresses := strings.Split(fullExpress, routerExpressSplit) |
| 571 | if len(expresses) < 2 { |
| 572 | continue |
| 573 | } |
| 574 | node := router.getNode(expresses[0], expresses[1]) |
| 575 | if node == nil { |
| 576 | continue |
| 577 | } |
| 578 | node.groupMiddlewares = g.middlewares |
| 579 | for _, m := range node.groupMiddlewares { |
| 580 | if m.HasExclude() && m.ExistsExcludeRouter(node.fullPath) { |
| 581 | app.Logger().Debug("DotWeb initBindMiddleware [group] "+fullExpress+" "+reflect.TypeOf(m).String()+" exclude", LogTarget_HttpServer) |
| 582 | node.hasExcludeMiddleware = true |
| 583 | } else { |
| 584 | app.Logger().Debug("DotWeb initBindMiddleware [group] "+fullExpress+" "+reflect.TypeOf(m).String()+" match", LogTarget_HttpServer) |
| 585 | } |
| 586 | } |
| 587 | } |
| 588 | } |
| 589 | } |
| 590 | |
| 591 | // IncludeDotwebGroup init inner routers which start with /dotweb/ |
| 592 | func (app *DotWeb) IncludeDotwebGroup() { |
no test coverage detected