Interface ProtocolReadService
- All Known Implementing Classes:
ProtocolReadServiceImpl
Protocol.
Phase 3 of the ProtocolService decomposition (strangler fig). This
service houses the DAO-bound read cluster previously implemented directly on
the ProtocolServiceImpl facade: findByName and
loadAllUniqueByName. Both methods delegate straight to
ProtocolDao.
Write-side methods (the inherited BaseService mutators
create, findOrCreate, remove from
SecurableBaseImmutableService, which carry @Secured("GROUP_USER")
and @Secured("GROUP_USER","ACL_SECURABLE_EDIT")) stay on the
ProtocolService facade.
Callers should generally keep using ProtocolService as the facade --
the facade delegates to this service. Direct injection is appropriate where a
class is logically read-only (CLIs listing protocols, REST endpoints, etc.).
ACL / @Secured annotations live on ProtocolService (the
caller-facing facade interface); enforcement happens at the facade proxy
boundary, not here. The read methods on the facade carry
@Secured("IS_AUTHENTICATED_ANONYMOUSLY") plus a
@PostAuthorize/@PostFilter hasPermission(...,'READ')
check -- the new read impl is unsecured at the AOP boundary on purpose, so
intra-gemma-core callers that already hold an authenticated session
bypass duplicate ACL checks.
- See Also:
-
Method Summary
-
Method Details
-
findByName
-
loadAllUniqueByName
-