spring-projects / spring-projects/spring-security

SEC-2616: PermissionEvaluator chain-of-responsibility implementation

Open
#2,833 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Christopher Smith (Migrated from SEC-2616) said:

I'm building an application where the domain security policy is built up from a number of independent rules (e.g., user A can give user B temporary permission to upload files to user A's account: hasPermission(owner, 'upload')), and it seems that these rules should be assembled in a Chain of Responsibility, similar to chaining logic present elsewhere in Spring Security. As I understand the architecture, the system expects exactly one PermissionEvaluator to be present, in contrast with the way that MessageConverters register for particular pairs of classes.

Would it be appropriate to add a PermissionEvaluatorChain implementation that ran through a series of permit/deny/pass rules to the main Spring Security distribution? If so, would directly adding support for building and configuring rule-based permission evaluators fit with the plans for upcoming versions (4.1 or so)?

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 by reviewing Spring Security's PermissionEvaluator architecture and the existing chaining logic referenced in the issue, then compare it with how MessageConverters register for class pairs. Determine whether a PermissionEvaluatorChain and rule-based permit/deny/pass support fit the project plans; done means a concrete design decision and agreed scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
authorization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.