Хранилище секретов принимает недоступный файл за отсутствующий

Aperta Adatta ai principianti
#417 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
76/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
csharp
Ambito
backend

Direzione di ricerca

Leggi src/Bydlo.Platform/SecretStores.cs in corrispondenza di FileSecretStoreBase.LoadAsync (righe 31–47) e segui come la lettura dei file dei segreti gestisce i file mancanti e gli errori di accesso. Aggiungi o individua test per FileSecretStoreBase che distinguano un segreto mancante da uno inaccessibile; il lavoro è completato quando i file mancanti restituiscono ProfileSecrets.Empty e gli errori di accesso generano SecretAccessException.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug P1

#375 добавил SecretAccessException при ошибках чтения, но FileSecretStoreBase.LoadAsync по-прежнему начинает с File.Exists. Этот API возвращает false также при ошибках доступа к пути, поэтому выполнение может вернуть ProfileSecrets.Empty до попытки чтения.

Сценарий: сохранён профиль HTTP с паролем, а каталог хранилища временно недоступен для процесса. File.Exists возвращает false. BackupArchive.HasRequiredSecrets допускает пустой набор для HTTP, и экспорт может завершиться архивом без существующих учётных данных. Восстановление также может принять пустой набор за достоверный снимок для отката.

Ожидается прямое чтение файла с возвратом Empty только при подтверждённом отсутствии (FileNotFoundException/DirectoryNotFoundException), а прочие ошибки доступа должны давать SecretAccessException. Добавить проверку различия между отсутствующим и недоступным секретом.

Код: https://github.com/endercodezz/BYDLO/blob/3363f21/src/Bydlo.Platform/SecretStores.cs#L31-L47

Lingua principale
C#
Stelle
5
Fork
1
Merge medio
46m
PR unite (30g)
179

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di endercodezz/BYDLO

Tutte le issue di endercodezz/BYDLO

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.