NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Sentinel for Laravel

Výnimky, stavy a enumy

Každá výnimka dedí z RoundlyConsulting\Sentinel\Exceptions\SentinelException (RuntimeException), okrem HTTP výnimiek, ktoré dedia zo Symfony HttpException a vykreslia problem details podľa RFC 9457. Správy sú anglické, určené vývojárom (HTTP správy sú preložené), a nikdy neobsahujú materiál kľúčov ani zapečatené hodnoty.

VýnimkaKedy
InvalidSealDefinitionExceptionDefinícia pečate sa neskompiluje — problems() vypíše všetky problémy.
SealingMisconfiguredExceptionChyby zapojenia, fail closed: notSealable, unknownSeal (vypíše deklarované pečate), unknownRing, saveOverridden, writeOutsideSealedPath, middlewareParameter, bindingsNotSubstituted, queryModelMismatch, missingColumn, unknownModel, invalidColumn, middlewareOption, whereNeedsOneModel.
CanonicalizationExceptionHodnota sa nedá kanonizovať — field() a reason() pomenujú pole a pravidlo, nikdy nie hodnotu.
NoSigningKeyExceptionV kruhu nie je aktívny kľúč so súkromným materiálom; správa uvedie premenné kľúča kruhu a v testoch odkáže na WithSentinelKeys alebo Sentinel::fake().
UnknownKeyExceptionKid neznámy v danom kruhu (aj kid iného kruhu).
KeyIntegrityExceptionRiadok kľúča v databáze nesúhlasí so svojou obálkou.
InvalidKeyMaterialExceptionMateriál kľúča odmietnutý (kódovanie, dĺžka, slabé tajomstvo, nesúlad krivky, súkromný materiál pri importe len na overovanie, …).
AlgorithmNotAllowedExceptionAlgoritmus mimo allowlistu.
KeyDriverExceptionOdmietnutia v životnom cykle kľúča: readOnly, notStoredInDatabase, keyIdTaken, reasonRequired, invalidKeyId, invalidLabel.
ConcurrentSealExceptionPrehraný súbeh (zápis sa vráti).
SealingFailedExceptionPečatenie neuloženého modelu / riadok zmizol počas pečatenia.
TamperedModelExceptionverifyOrFail(), zamietnutý zápis, zamietnutá hromadná aktualizácia — result() / results().
SealingSuspensionNotAllowedExceptionwithoutSealing() pri vypnutom allow_suspension.
AcknowledgementDeniedExceptionPotvrdenie / odpečatenie / baseline zamietnuté: reason, reasonTooLong, actorRequired, unauthorized.
LedgerIsAppendOnlyExceptionEloquent update či delete záznamu denníka alebo kontrolného bodu.
LedgerIntegrityExceptionLedgerReport::throwIfViolated() — findings() vráti porušenia.
InvalidSentinelConfigurationExceptionNeplatná konfigurácia; vyhodí sa pri prvom použití a nikdy ju nenahradí predvolená hodnota — správa uvedie kľúč (pri booleane aj zadanú hodnotu).
InvalidPurposeExceptionÚčel nonce mimo povolenej abecedy.
IdempotentResultExceptionidempotency()->run() vrátilo niečo, čo sa nedá uložiť ako JSON — callback prebehol, kľúč sa dokončí ako neprehrateľný.

HTTP výnimky

VýnimkaStatuscode
Http\Exceptions\SealVerificationFailedHttpExceptionmiddleware.verified_status (409)— (všeobecná správa)
IdempotencyKeyMissingException400idempotency_key_missing
InvalidIdempotencyKeyException400invalid_idempotency_key
IdempotencyKeyReusedException422idempotency_key_reused
IdempotencyRequestInProgressException409 + Retry-Afteridempotency_request_in_progress
IdempotentResponseUnavailableException409idempotent_response_unavailable
NonceRejectedException403nonce_rejected
HttpSignatureException401 (+ Accept-Signature)signature_rejected

Telá problémov nesú type (ak je nakonfigurovaný), title, status, detail a code s Content-Type: application/problem+json; type je problems.type_base#code a title aj detail sú preložené. Rodina idempotencie zdieľa abstraktnú IdempotencyException — rejection() vráti IdempotencyRejection, retryAfterSeconds() hodnotu Retry-After — a HttpSignatureException má reason() a keyId().

Stavy overenia

Hodnoty VerificationStatus sú zmrazené; názvy prípadov sú tvary hodnôt v StudlyCase. isIntact() a isFailure() uplatňujú to isté pravidlo ako VerificationResult::isIntact() a preložené názvy sú v sentinel::statuses:

PrípadHodnotaNeporušený?
Intactintactáno
Outdatedoutdatedáno, pokiaľ nie je vypnuté verification.outdated_is_intact
Unsealedunsealedáno (benevolentné pečate)
Tamperedtamperednie
Missingmissingnie
Stalestalenie
UnknownKeyunknown_keynie
RevokedKeyrevoked_keynie
RetiredKeyretired_keynie
AlgorithmNotAllowedalgorithm_not_allowednie
AlgorithmMismatchalgorithm_mismatchnie
Malformedmalformednie
Unverifiableunverifiablenie

Dôvody: mac, computed, canonicalization, ledger_entry (tampered); seal_deleted, never_sealed, unsealed (missing); newer_version, not_in_ledger, ledger_mismatch, entity_recreated (stale); ring_not_accepted, not_found, pending, integrity (unknown key); missing_attribute, missing_computed, error (unverifiable).

Enumy

Všetky žijú v RoundlyConsulting\Sentinel\Enums, sú zmrazené a používajú pomocníkov enums-for-laravel (values(), names(), labels(), options(), fromName(), tryFromName(), label(), is(), isIn(), …). Zmena hodnoty je hlavné vydanie:

EnumPrípadyPomocníci
AlgorithmHmacSha256, HmacSha384, HmacSha512, Ed25519, EcdsaP256Sha256, EcdsaP384Sha384isHmac(), isAsymmetric(), isHttpRegistered(), hashName(), hashLength(), hashAlgorithm(), cryptoAlgorithm()
KeyStatusPending, Active, VerifyOnly, Retired, RevokedcanSign(), canVerify()
KeyDestinationConfig, Database—
SealEventSealed, Resealed, Acknowledged, Baseline, Rotated, Deleted, UnsealedisTombstone()
VerificationContextApi, Middleware, Retrieve, Command, Rule, Collection, Write—
ReactionThrow, Report—
TamperedWritePolicyRefuse, Reseal, Skip—
LedgerFindingKindCheckpointGap, CheckpointInvalid, CheckpointMismatch, ChainBroken, AnchorAhead, AnchorMismatch, AnchorInvalid, AnchorUnreachable, EntryInvalid, OrphanEntry, EntityDeleted, SealRolledBack, SealMissing, BacklogisViolation()
IdempotencyRejectionMissing, Invalid, Reused, InProgress, Unavailablestatus()
IdempotencyOutcomeProceed, Replay, InProgress, Reused, Unavailable—
SignatureRejectionMissing, Malformed, Ambiguous, MissingParameter, MissingComponent, UnsupportedComponent, UnsupportedAlgorithm, UnknownKey, RevokedKey, AlgorithmMismatch, AlgorithmNotAllowed, TagMismatch, NotYetValid, TooOld, Expired, DigestMismatch, UnsupportedDigest, InvalidSignature, Replayed—
DigestAlgorithmSha256, Sha512hashAlgorithm()
HealthStatusOk, Warning, Failure—
NonceKindIssued, Seen—
PersistOperationSave, Delete, Increment—
TypeKindAuto, String, Integer, Decimal, Float, Boolean, DateTime, Date, Json, Binary, Null, PlaintexthasScale(), isDeclarable()

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.