Class AnnotationParameterNameDiscoverer
- All Implemented Interfaces:
org.springframework.core.ParameterNameDiscoverer
Annotation instances. This is useful when needing to discover the parameter
names of interfaces with Spring Security's method level security. For example, consider
the following:
import org.springframework.security.access.method.P;
@PostAuthorize("#to == returnObject.to")
public Message findMessageByTo(@P("to") String to);
We can make this possible using the following AnnotationParameterNameDiscoverer
:
ParameterAnnotationsNameDiscoverer discoverer = new ParameterAnnotationsNameDiscoverer(
"org.springframework.security.access.method.P");
It is common for users to use AnnotationParameterNameDiscoverer in conjunction
with PrioritizedParameterNameDiscoverer. In fact, Spring Security's
DefaultSecurityParameterNameDiscoverer (which is used by default with method
level security) extends PrioritizedParameterNameDiscoverer and will
automatically support both P and Spring Data's Param annotation if it is found
on the classpath.
It is important to note that if a single parameter name has a supported annotation on
it then all methods are resolved using AnnotationParameterNameDiscoverer. For
example, consider the following:
import org.springframework.security.access.method.P;
@PostAuthorize("#to == returnObject.to")
public Message findMessageByToAndFrom(@P("to") User to, User from);
The result of finding parameters on the previous sample will be
new String[] { "to", null} since only a single parameter contains an
annotation. This is mostly due to the fact that the fallbacks for
PrioritizedParameterNameDiscoverer are an all or nothing operation.
- Since:
- 3.2
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionAnnotationParameterNameDiscoverer(String... annotationClassToUse) AnnotationParameterNameDiscoverer(Set<String> annotationClassesToUse) -
Method Summary
Modifier and TypeMethodDescriptionString[]getParameterNames(Constructor<?> constructor) String[]getParameterNames(Method method)
-
Constructor Details
-
AnnotationParameterNameDiscoverer
-
AnnotationParameterNameDiscoverer
-
-
Method Details
-
getParameterNames
- Specified by:
getParameterNamesin interfaceorg.springframework.core.ParameterNameDiscoverer
-
getParameterNames
- Specified by:
getParameterNamesin interfaceorg.springframework.core.ParameterNameDiscoverer
-