Внедрение значений свойств из файла свойств или XML-файла в Java-аннотацию PreAuthorize (…) (Unresolved)
я задал этот вопрос в моем предыдущем посте здесь:SpEL для весенней безопасности: передача значений из XML в конфигурацию SpEL на основе Java, Но это не былопока не решено. Я хочу ввести значения либо из конфигурации XML или из внешнего файла в@PreAuthorize(...)
аннотаций. Это не так просто, как инъекция с помощью@Value
аннотаций.
Чтобы вспомнить вопрос, приведу следующую информацию.
У меня есть следующий файл конфигурации xml (example.xml), который имеет свойства и инициализирует его соответствующие значения.
У меня есть следующий файл внешних свойств (example.properties) в папке / WEB-INF. Этот файл является альтернативой для файла конфигурации XML, упомянутого выше.
user.id = 33
customer.id =33
У меня есть конфигурация владельца политики свойств в моем файле applicationContext.xml
У меня есть два модельных класса: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 ниже. Выражения, которые я использовал в этом предложении, предложены Робом Уинчем (Спасибо, Роб!). Однако весна не моглаt оценить выражение.
вводя'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 долларов для меня, так как я сыт по горло, чтобы решить эту проблему !!! Поэтому, пожалуйста, помогите мне столько, сколько сможете!