Add HS256 JWT authentication to both HTTP and gRPC servers using Kratos jwt middleware with selector to skip auth for public share endpoints (GetShareInfo, DownloadShare). Wire DI updated to inject conf.Auth into server constructors.
70 lines
2.3 KiB
Go
70 lines
2.3 KiB
Go
// Code generated by Wire. DO NOT EDIT.
|
|
|
|
//go:generate go run -mod=mod github.com/google/wire/cmd/wire
|
|
//go:build !wireinject
|
|
// +build !wireinject
|
|
|
|
package main
|
|
|
|
import (
|
|
"github.com/go-kratos/kratos/v2"
|
|
"github.com/go-kratos/kratos/v2/log"
|
|
"github.com/go-kratos/kratos/v2/transport/grpc"
|
|
"github.com/go-kratos/kratos/v2/transport/http"
|
|
"rag/file-system/internal/biz"
|
|
"rag/file-system/internal/conf"
|
|
"rag/file-system/internal/data"
|
|
"rag/file-system/internal/server"
|
|
"rag/file-system/internal/service"
|
|
)
|
|
|
|
// Injectors from wire.go:
|
|
|
|
// initApp wires up the entire dependency graph.
|
|
func initApp(bootstrap *conf.Bootstrap, logger log.Logger) (*kratos.App, func(), error) {
|
|
confServer := newConfServer(bootstrap)
|
|
auth := newConfAuth(bootstrap)
|
|
confData := newConfData(bootstrap)
|
|
fileRepo := data.NewFileRepo(confData)
|
|
fileUsecase := biz.NewFileUsecase(fileRepo, logger)
|
|
bucketUsecase := biz.NewBucketUsecase(fileRepo, logger)
|
|
dataData, cleanup, err := data.NewData(confData, logger)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
folderRepo := data.NewFolderRepo(dataData, logger)
|
|
fileMetaRepo := data.NewFileMetaRepo(dataData, logger)
|
|
folderUsecase := biz.NewFolderUsecase(folderRepo, fileMetaRepo, fileRepo, logger)
|
|
shareRepo := data.NewShareRepo(dataData, logger)
|
|
shareUsecase := biz.NewShareUsecase(shareRepo, fileMetaRepo, fileRepo, logger)
|
|
fileService := service.NewFileService(fileUsecase, bucketUsecase, folderUsecase, shareUsecase, logger)
|
|
httpServer := server.NewHTTPServer(confServer, auth, fileService, logger)
|
|
grpcServer := server.NewGRPCServer(confServer, auth, fileService, logger)
|
|
app := newApp(logger, httpServer, grpcServer)
|
|
return app, func() {
|
|
cleanup()
|
|
}, nil
|
|
}
|
|
|
|
// wire.go:
|
|
|
|
// newApp creates a new Kratos application with HTTP and gRPC servers.
|
|
func newApp(logger log.Logger, hs *http.Server, gs *grpc.Server) *kratos.App {
|
|
return kratos.New(kratos.Name("file-system"), kratos.Logger(logger), kratos.Server(hs, gs))
|
|
}
|
|
|
|
// newConfServer extracts the Server config from Bootstrap.
|
|
func newConfServer(bc *conf.Bootstrap) *conf.Server {
|
|
return bc.GetServer()
|
|
}
|
|
|
|
// newConfData extracts the Data config from Bootstrap.
|
|
func newConfData(bc *conf.Bootstrap) *conf.Data {
|
|
return bc.GetData()
|
|
}
|
|
|
|
// newConfAuth extracts the Auth config from Bootstrap.
|
|
func newConfAuth(bc *conf.Bootstrap) *conf.Auth {
|
|
return bc.GetAuth()
|
|
}
|