Closed
Description
To add an advisor to AuthorizationAdvisorProxyFactory
is simple:
List<AuthorizationAdvisor> advisors = ...
AuthorizationAdvisorProxyFactory proxyFactory = AuthorizationAdvisorProxyFactory.withDefaults();
proxyFactory.setAdvisors(advisors);
However, it's not great that all advisors need to be specified. Given that withDefaults
prepares a default set of advisors already, it would be nice to be able to augment it instead of replace.
For example, addAdvisors
may be valuable like so:
List<AuthorizationAdvisor> advisors = ...
AuthorizationAdvisorProxyFactory proxyFactory = AuthorizationAdvisorProxyFactory.withDefaults();
proxyFactory.addAdvisors(advisors);
// ... or
proxyFactory.advisors((a) -> a.addAll(advisors))
Another option is to expose the default advisors via a static method:
List<AuthorizationAdvisor> advisors = AuthorizationAdvisorProxyFactory.defaultAdvisors();
advisors.add(...);
AuthorizationAdvisorProxyFactory proxyFactory = AuthorizationAdvisorProxyFactory.withDefaults();
proxyFactory.setAdvisors(advisors);
Note that mutability is necessary in this case since this allows a recursive nesting of advisors, important in the case of @AuthorizeReturnObject
, for example.