spring-projects / spring-projects/spring-security

SEC-2862: Make AclService Generic

Open
#3,084 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type: enhancement type: jira
Dominant language
Java
Stars
9.6k
Forks
6.3k
Avg merge
2d 11h
Merged PRs (30d)
52

Description

Ruben Dijkstra (Migrated from SEC-2862) said:

Since AclService can be extended, it should be trivial to make AclService generic.

For example, MutableAclService operates only on MutableAcl, but all inherited methods still return Acl.
Since it is a fact, you can downcast Acl to MutableAcl at all times, but it would be cleaner for the compiler to do this for you.

Since the generic methods would erase to Acl, I would like to hear about any other opinions that could prevent this change.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the AclService and MutableAclService declarations and inspect the inherited methods that currently return Acl. Check how the generic signatures erase and whether existing extensions remain source- and binary-compatible; done means MutableAclService callers receive MutableAcl without manual casts while the API continues to compile and pass its tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
security
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.