Class PopulatorAllowlist
RegionDef.populate).
This is an authoring-discipline control, not a security boundary, and the reason is structural, not a
weaker policy choice. SinkRenderAllowlist is real defense: a named renderer's markup still has to pass
through the closed fillRenderSlot copier, so an accepted id only ever gets to write what that copier lets
it write. A populator has no such copier anywhere in its path — JuneauViews.regions.resolve(name)
hands the resolved function the region's container element outright, and from that point the populator owns the
container completely. This class therefore controls only which name is resolved; it says nothing whatever
about what the resolved populator then does with the container it is handed. A reader who treats this allowlist
as a security boundary equivalent to SinkRenderAllowlist will over-trust it.
- Since:
- 10.0.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionThe reserved declarative-default populator name — the only Juneau-shipped populator today. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidassertAllowed(String populatorName, Collection<String> allowedNames) Accepts a reserved built-in name, or a name present inallowedNames.
-
Field Details
-
BUILTIN_IDS
The reserved declarative-default populator name — the only Juneau-shipped populator today.Unlike an ordinary
JuneauViews.regions.register(name, fn)entry, which is last-write-wins and freely overridable by a later registration under the same name, the client registry refuses to let a consumer override the entry named"default" : that name is reserved for the framework's own declarative-default populator.
-
-
Method Details
-
assertAllowed
Accepts a reserved built-in name, or a name present inallowedNames.- Parameters:
populatorName- The populator name. Must not benull or blank.allowedNames- Opt-in populator names (e.g.RegionDef.allowedPopulators). Can benull .- Throws:
IllegalArgumentException- If the name is neither a built-in nor an opted-in name.
-