Внедрение значений свойств из файла свойств или XML-файла в Java-аннотацию PreAuthorize (…) (Unresolved)

Я задал этот вопрос в моем предыдущем посте здесь:SpEL для весенней безопасности: передача значений из XML в конфигурацию SpEL на основе Java, Но это еще не решено. Я хочу ввести значения либо из конфигурации XML или из внешнего файла в@PreAuthorize(...) аннотаций. Это не так просто, как инъекция с помощью@Value аннотаций.

Чтобы вспомнить вопрос, приведу следующую информацию.

У меня есть следующий файл конфигурации xml (example.xml), который имеет свойства и инициализирует его соответствующие значения.

<beans>
    <bean id="userBean" class="x.y.User">
    <property name="name" value="A"/>
    <property name="userId" value="33"/>

    <bean id="customerBean" class="x.y.Customer">
        <property name="name" value="B"/>
        <property name="customerId" value="33"/>
    </bean>
</beans>

У меня есть следующий файл внешних свойств (example.properties) в папке / WEB-INF. Этот файл является альтернативой для файла конфигурации XML, упомянутого выше.

user.id = 33
customer.id =33

У меня есть конфигурация владельца политики свойств в моем файле applicationContext.xml

<context:property-placeholder location="/WEB-INF/*.properties" ignore-unresolvable="true" />

<bean id="propertyConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
      p:location="/WEB-INF/example.properties" p:ignoreUnresolvablePlaceholders="true" />

У меня есть два модельных класса:User а такжеCustomer

public class User {
    private int userId;

public int getUserId() {
        return userId;
    }
}

public class Customer {
    private int customerId;

    public int getCustomerId(){
        return customerId;
    }
}

У меня есть другой класс обслуживания / контроллера, который я хочу ограничить'edit' метод с помощью@PreAuthorize аннотаций.

The restriction: Метод разрешен (разрешен к исполнению) тогда и только тогда, когда'userId' а также'customerId' оцениваются равными!

Чтобы добиться ограничения, я хочу рассмотреть два способа

вводя'userId' а также'customerId' значения из XML-файла (example.xml) в выражение 1 ниже. Выражения, которые я использовал в этом предложении, предложены Робом Уинчем (Спасибо, Роб!). Однако Spring не смог оценить выражение.

вводя'userId' а также'customerId' значения из файла внешних свойств (example.properties) в выражение 2 ниже. Точно так же весна не могла оценить и это выражение.

@Service("..") or @Controller
public class MyMainClass {

    //Expression 1
    @PreAuthorize("@userBean.userId == @customerBean.customerId")
        public Boolean edit(User user, Customer custmer)  {
    return true;
    }

    //Expression 2
    ////I've tried other ways as well, but end up with similar exceptions
    @PreAuthorize("${user.id} == ${customer.id}")
    public Boolean edit(User user, Customer customer)  {
        return true;
    }
}

Мои вопросы:

Q1. Какие правильные выражения я должен поместить в@PreAuthorize аннотация для вставки значений из файла xml (example.xml) или из файла свойств (example.properties) в@PreAuthorize(...) выражение, то это можно легко оценить?

Q2. Укажите меня, если я сделал ошибки, кроме выражений.

Q3. Это как вопрос в 1 000 000 долларов для меня, так как я сыт по горло, чтобы решить эту проблему !!! Поэтому, пожалуйста, помогите мне столько, сколько сможете!

Ответы на вопрос(1)

Ваш ответ на вопрос