Following on from the PR #5117 and discussions with Colin McCabe...
Current placement of ResourceNameType as field in Resource class is ... less than ideal. A Resource should be a concrete resource. Look to resolve this.
A. I guess you could subclass Resource and have ResourcePrefix - but there is no 'is-a' relationship here and it would still allow authorise(ResourcePrefix())
B. You could move ResourceNameType into AccessControllEntryData - possible.
C. Move ResourceNameType directly into AclBinding / AclBindingFilter - possible