MCPcopy Create free account
hub / github.com/apache/devlake / getBasicAuthUserInfo

Function getBasicAuthUserInfo

backend/server/api/middlewares.go:49–73  ·  view source on GitHub ↗
(c *gin.Context, basicRes context.BasicRes)

Source from the content-addressed store, hash-verified

47}
48
49func getBasicAuthUserInfo(c *gin.Context, basicRes context.BasicRes) (*common.User, error) {
50 if c == nil {
51 return nil, errors.Default.New("request is nil")
52 }
53 authHeader := c.GetHeader("Authorization")
54 if authHeader == "" {
55 basicRes.GetLogger().Debug("Authorization is empty")
56 return nil, nil
57 }
58 basicAuth := strings.TrimPrefix(authHeader, "Basic ")
59 if basicAuth == authHeader || basicAuth == "" {
60 return nil, errors.Default.New("invalid basic auth")
61 }
62 userInfoData, err := base64.StdEncoding.DecodeString(basicAuth)
63 if err != nil {
64 return nil, errors.Default.Wrap(err, "base64 decode")
65 }
66 userInfo := strings.Split(string(userInfoData), ":")
67 if len(userInfo) != 2 {
68 return nil, errors.Default.New("invalid user info data")
69 }
70 return &common.User{
71 Name: userInfo[0],
72 }, nil
73}
74
75func OAuth2ProxyAuthentication(basicRes context.BasicRes) gin.HandlerFunc {
76 logger := basicRes.GetLogger()

Callers 1

Calls 4

WrapMethod · 0.80
NewMethod · 0.65
DebugMethod · 0.65
GetLoggerMethod · 0.65

Tested by

no test coverage detected