mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-09-12 13:49:13 -04:00
A public link stat that fails for the password came back as a generic 401 "Access token is empty", so a client could not tell "show the password field" from "the password was wrong". The proxy now marks the two cases (it holds the auth result) and the graph service renders them as distinct odata codes, publicLinkPasswordRequired and publicLinkPasswordInvalid, the way webdav distinguishes ERR_MISSING_BASIC_AUTH from ERR_INVALID_CREDENTIALS. The distinction rides in the body, never a WWW-Authenticate: Basic header, which would pop the browser's native auth dialog instead of the app's password field. The shared header/token contract lives in pkg/middleware.