diff --git a/Dockerfile.dev b/Dockerfile.dev index 13c22f4..d48794f 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -76,7 +76,6 @@ COPY --from=builder-backend /app/release /app/ COPY --from=builder-backend /app/conf /app/conf/ COPY --from=builder-backend /app/resources /app/resources/ COPY --from=builder-backend /app/docs /app/docs/ -COPY --from=builder-backend /app/http/templates /app/http/templates # Copy frontend build from builder2 stage COPY --from=builder-admin-frontend /frontend/dist/ /app/resources/admin/ diff --git a/service/ldap.go b/service/ldap.go index 9d498ab..5d6609f 100644 --- a/service/ldap.go +++ b/service/ldap.go @@ -30,6 +30,7 @@ var ( ErrLdapBindFailed = errors.New("LdapBindFailed") ErrLdapToLocalUserFailed = errors.New("LdapToLocalUserFailed") ErrLdapCreateUserFailed = errors.New("LdapCreateUserFailed") + ErrLdapPasswordNotMatch = errors.New("PasswordNotMatch") ) // LdapService is responsible for LDAP authentication and user synchronization. @@ -119,7 +120,7 @@ func (ls *LdapService) connectAndBindAdmin(cfg *config.Ldap) (*ldap.Conn, error) func (ls *LdapService) verifyCredentials(cfg *config.Ldap, username, password string) error { ldapConn, err := ls.connectAndBind(cfg, username, password) if err != nil { - return err + return ErrLdapPasswordNotMatch } defer ldapConn.Close() return nil @@ -136,6 +137,10 @@ func (ls *LdapService) Authenticate(username, password string) (*model.User, err return nil, ErrLdapUserDisabled } cfg := &Config.Ldap + err = ls.verifyCredentials(cfg, ldapUser.Dn, password) + if err != nil { + return nil, err + } user, err := ls.mapToLocalUser(cfg, ldapUser) if err != nil { return nil, errors.Join(ErrLdapToLocalUserFailed, err)