получить весь список @PreAuthorize <string>весной - PullRequest
0 голосов
/ 07 октября 2019

Я пытался найти способ получить список всех предавторизованных аннотаций из пружинного контейнера

Предположим, у меня есть что-то вроде ниже.

    @PreAuthorize("hasPermission(null, 'opetussuunnitelma', 'LUONTI1')")
@PreAuthorize("hasPermission(null, 'opetussuunnitelma', 'LUONTI2')")
@PreAuthorize("hasPermission(null, 'opetussuunnitelma', 'LUONTI3')")

> I need to get that string(hasPermission(null, 'opetussuunnitelma',
> 'LUONTI2')) or at least List<Map> (x=null,y='opetussuunnitelma',
> z='LUONTI1')

Есть ли способ, которым я мог быВыполните это, так как у меня есть n таких аннотаций, и мне нужно проанализировать все эти строки аннотаций и что-то с этим сделать.

1 Ответ

1 голос
/ 07 октября 2019

Чтобы загрузить все классы вашего приложения в JVM, вы можете попробовать Reflection library , получить загруженные бины из контекста приложения Spring или вручную добавить их в статический список,Тем не менее, не существует определенного и правильного способа достижения этого.

Чтобы получить аннотации, используйте отражение Java.

Дополнительная информация: https://www.geeksforgeeks.org/method-class-getannotation-method-in-java/

public void handleAnnotations(Class c) {
    try { 
        Method[] methods = c.getMethods(); 

        for (Method method : methods) { 
            PreAuthorize[] annotations = c.getAnnotationsByType(PreAuthorize.class);
            // handle annotations
        } 

    } 
    catch (Exception e) { 
        // handle exception
    } 
}
...