Skip to content

Commit a77e965

Browse files
committed
chore: return error from ssoAccount
1 parent a357894 commit a77e965

1 file changed

Lines changed: 17 additions & 18 deletions

File tree

internal/http/middleware/auth.go

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,15 @@ func NewAuthMiddleware(deps model.Dependencies) *AuthMiddleware {
4040
}
4141

4242
func (m *AuthMiddleware) OnRequest(deps model.Dependencies, c model.WebContext) error {
43-
if account := m.ssoAccount(deps, c); account != nil {
43+
account, err := m.ssoAccount(deps, c)
44+
if err != nil {
45+
deps.Logger().
46+
WithError(err).
47+
WithField("remote_addr", c.Request().RemoteAddr).
48+
WithField("request_id", c.GetRequestID()).
49+
Error("getting sso account")
50+
}
51+
if account != nil {
4452
c.SetAccount(account)
4553
return nil
4654
}
@@ -54,7 +62,7 @@ func (m *AuthMiddleware) OnRequest(deps model.Dependencies, c model.WebContext)
5462
return nil
5563
}
5664

57-
account, err := deps.Domains().Auth().CheckToken(c.Request().Context(), token)
65+
account, err = deps.Domains().Auth().CheckToken(c.Request().Context(), token)
5866
if err != nil {
5967
// If we fail to check token, remove the token cookie and redirect to login
6068
deps.Logger().WithError(err).WithField("request_id", c.GetRequestID()).Error("Failed to check token")
@@ -70,9 +78,9 @@ func (m *AuthMiddleware) OnRequest(deps model.Dependencies, c model.WebContext)
7078
return nil
7179
}
7280

73-
func (m *AuthMiddleware) ssoAccount(deps model.Dependencies, c model.WebContext) *model.AccountDTO {
81+
func (m *AuthMiddleware) ssoAccount(deps model.Dependencies, c model.WebContext) (*model.AccountDTO,error) {
7482
if !deps.Config().Http.SSOProxyAuth {
75-
return nil
83+
return nil, nil
7684
}
7785

7886
remoteAddr := c.Request().RemoteAddr
@@ -82,35 +90,26 @@ func (m *AuthMiddleware) ssoAccount(deps model.Dependencies, c model.WebContext)
8290
if errors.As(err, &addrErr) && addrErr.Err == "missing port in address" {
8391
ip = remoteAddr
8492
} else {
85-
deps.Logger().
86-
WithError(err).
87-
WithField("remote_addr", remoteAddr).
88-
WithField("request_id", c.GetRequestID()).
89-
Error("Could not parse remote ip")
90-
return nil
93+
return nil,err
9194
}
9295
}
9396
requestIP := net.ParseIP(ip)
9497
if !m.isTrustedIP(requestIP) {
95-
return nil
98+
return nil, errors.New("remoteAddr is not a trusted ip")
9699
}
97100

98101
headerName := deps.Config().Http.SSOProxyAuthHeaderName
99102
userName := c.Request().Header.Get(headerName)
100103
if userName == "" {
101-
return nil
104+
return nil, nil
102105
}
103106

104107
account, err := deps.Domains().Accounts().GetAccountByUsername(c.Request().Context(), userName)
105108
if err != nil {
106-
deps.Logger().
107-
WithError(err).
108-
WithField("request_id", c.GetRequestID()).
109-
Error("Failed to get account from sso header")
110-
return nil
109+
return nil, err
111110
}
112111

113-
return account
112+
return account, nil
114113
}
115114
func (m *AuthMiddleware) isTrustedIP(ip net.IP) bool {
116115
for _, net := range m.trustedIPs {

0 commit comments

Comments
 (0)