Skip to content

Add Reasons to AuthorizationDecisions #9287

Closed
@jzheaux

Description

@jzheaux

It's helpful to know why a security decision was made.

AuthorityReactiveAuthorizationManager and AuthorityAuthorizationManager could do this by constructing an AuthorityAuthorizationDecision:

public class AuthorityAuthorizationManager implements AuthorizationManager {
    // ...

    public static class AuthorityAuthorizationDecision extends AuthorizationDecision {
        private Collection<GrantedAuthority> authorities;

        public AuthorityAuthorizationDecision(boolean decision, GrantedAuthority... authorities) {
            super(decision);
            // ...
        }

        public Collection<GrantedAuthority> getAuthorities() { 
            return this.authorities;
        }
    }
}

Likewise with AuthenticatedReactiveAuthorizationManager, AuthenticatedAuthorizationManager and AuthenticatedAuthorizationDecision.

Each implementation would likely need to override toString to assist with logging authorization events.

Metadata

Metadata

Assignees

No one assigned

    Labels

    in: coreAn issue in spring-security-corestatus: ideal-for-contributionAn issue that we actively are looking for someone to help us withtype: enhancementA general enhancement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions