Тарифный план: доменная логика c или @PreAuthorize? - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу наложить ограничения на пользователей моего 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
  // ...
}
...