복붙노트

[SPRING] Spring EL 표현식에 커스터마이징 주석 매개 변수를 전달할 수 있습니까?

SPRING

Spring EL 표현식에 커스터마이징 주석 매개 변수를 전달할 수 있습니까?

다음과 같은 사용자 지정 주석이 있습니다.

@AllowedForUserWithID
public myFunction (int userID) {       
}

@PreAuthorize(CustomPermissionEvaluator.isUserWithID(principal, #userID))
public @interface AllowedForUserWithID {
}

public static boolean isUserWithID(UserDetails user, Integer userID) {
}

이들은 잘 작동하고, 나는 '#'을 사용하여 메소드 인수를 얻을 수 있습니다.

그러나 내 목표는 다음과 같이 주석을 사용하는 것입니다.

@RequiresPermission(feature=SecurityFeature.SETTINGS, rights=AccessRights.WRITE)
public myFunction() {
}

@PreAuthorize(CustomPermissionEvaluator.hasAccessPermission(principal, feature, rights))
public @interface RequiresPermission {
    SecurityFeature feature();
    AccessRights rights();
}

public static boolean hasAccessPermission(UserDetails user, SecurityFeature feature, AccessRights rights) {
}

이런 식으로 매개 변수를 표현식에 전달할 수 있습니까?

해결법

    from https://stackoverflow.com/questions/33784202/can-i-pass-custom-annotation-parameters-to-spring-el-expression by cc-by-sa and MIT license