У меня есть следующее: < /p>
Аспект: < /p>
@Aspect
@Component
public class AuthorizeUserAspect {
@Autowired
PermissionService permissionService;
@Around("@annotation(AuthorizeUser)")
public Object authorize(ProceedingJoinPoint joinPoint) throws Throwable {
...
}
}
< /code>
Интерфейс: < /p>
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AuthorizeUser {
}
< /code>
контроллер: < /p>
@GetMapping("/businesses/{businessId}/test")
public ResponseEntity getBusinessListAsClient(Principal jwtAuthUser, @PathVariable String businessId) throws Exception {
...
}
< /code>
Мне нужно передать в названных параметрах из подписи метода, а также дополнительный пользовательский параметр разрешения (чтение /запись), так что что -то вроде этого: < /p>
@AuthorizeUser(Principal jwtAuthUser, String businessId, permission = )
@GetMapping("/businesses/{businessId}/test")
< /code>
Это возможно? Мне все равно, как это делается, пока я могу получить эти значения в моей функции авторизации, чтобы использовать их. < /P>
Я знаю, что могу сделать что -то вроде: < /p>
joinPoint.getArgs();
< /code>
, чтобы получить параметры по позиции, но я хочу, чтобы это было более общим, и некоторые контроллеры могут иметь разные параметры, например, 1 -й и второй, так что это не сработало, плюс я понятия не имею
, как получить последнее значение.>
Подробнее здесь: https://stackoverflow.com/questions/696 ... annotation