ETag på inngående nyttelast (PUT/PATCH) var hvordan det var forstått både i tjenestegrensesnittprosjektet (i samtaler) og runtest. Det er ikke nikita alene som har hatt denne tolkningen. Tidligere i år så forstod jeg at det var feil og fikset det slik at det var riktig i henhold til den generelle forståelse av hvordan det brukes med if-match.
Bakoverkompatibilitet har vært et viktig stikkord i tjenestegrensesnittet og det kan være mange som bruker nikita og mange klienter som er utviklet på toppen av nikita sin opprinnelige forståelse av dette der ute. Derfor har jeg valgt å bare la det være slik at det er ikke er noe uhyggelig overraskelser for brukere.
Støtter at du fjerner sjekk av ETAG på innkommende nyttelast for å sikre riktig implementasjon, så får eventuelle brukere ta kontakt.
Thomas ________________________________ Fra: Petter Reinholdtsen pere@hungry.com Sendt: lørdag 5. september 2026 08:26 Til: nikita-noark@nuug.no nikita-noark@nuug.no Emne: Etag i Nikita, standard If-Match: og historisk ETag:
Dagens Nikita støtter to måter å bruke etag på. Aktuelle endepunkter gir ut en etag-verdi med "ETag:"-hodefeltet i HTTP-responser, som så kan tas imot i forespørsler som skal oppdatere entiteter. Dette siste mottas enten med "If-Match:" eller med "ETag:", se getETag() i AbstractEntityWebService.java. I følge <URL: https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracke...https://datatracker.ietf.org/doc/html/rfc7232 >, er det kun den første som er i tråd med standarden, og den andre må være noe historiske rester i Niktita. Er det noen grunn til å beholde støtte for det ikke-standardiserte hodefeltet?
Hvis ikke, så foreslår jeg å fjerne støtten og oppdatere alle tester som sender inn ETAG. Jeg har oppdatert mange tester allerede, men det kan være noen igjen.
Jeg foreslår altså følgende endring:
diff --git a/src/main/java/app/service/noark5/AbstractEntityWebService.java b/src/main/java/app/service/noark5/AbstractEntityWebService.java index e634db5ae..9a558e343 100644 --- a/src/main/java/app/service/noark5/AbstractEntityWebService.java +++ b/src/main/java/app/service/noark5/AbstractEntityWebService.java @@ -93,9 +93,6 @@ public class AbstractEntityWebService { } HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); String eTag = request.getHeader(IF_MATCH); - if (eTag == null) { - eTag = request.getHeader(ETAG); - } if (eTag == null) { throw new NikitaMalformedHeaderException(ERROR_MISSING_ETAG); }
Hva tenker dere andre?
-- Vennlig hilsen Petter Reinholdtsen _______________________________________________ nikita-noark mailing list -- nikita-noark@nuug.no To unsubscribe send an email to nikita-noark-leave@nuug.no