Я хочу наложить ограничения на пользователей моего API, используя тарифные планы. Мой API разработан с использованием DDD, но я впервые добавлю ограничения с использованием тарифных планов. В настоящее время авторизация моих пользователей осуществляется с использованием метода авторизации:
@PreAuthorize("isAllowedToAddCar(#newCar)")
public void addCar(Car newCar) {
// ...
}
Теперь мне было интересно, следует ли проверять ограничения тарифного плана для пользователей как часть @PreAuthorize
logi c, или как часть моего домена logi c?
Короче говоря, должно ли это быть так:
@PreAuthorize("isAllowedToAddCar(#newCar) and isAllowedWithinPriceLimit(#newCar)")
public void addCar(Car newCar) {
// ...
}
или вот так:
@PreAuthorize("isAllowedToAddCar(#newCar)")
public void addCar(Car newCar, User user) {
checkIfPricingPlanAllowsAdditionOfNewCar(user); // throws if pricing plan limit is reached
// ...
}