Używamy sprężyny i sprężyny bezpieczeństwa-3.2. Niedawno dodajemy adnotacje @PreAuthorize do RestAPIs (wcześniej był oparty URL).Niestandardowy komunikat o błędzie z @Preauthorize i @@ ControllerAdvice
@PreAuthorize("hasPermission('salesorder','ViewSalesOrder')")
@RequestMapping(value = "/restapi/salesorders/", method = RequestMethod.GET)
public ModelAndView getSalesOrders(){}
Mamy już Globalny obsługi wyjątków, które opatrzone - @ControllerAdvice i niestandardowych PermissionEvaluator w miejscu, wszystko działa dobrze, z wyjątkiem komunikatu o błędzie.
Powiedzmy, że niektórzy użytkownicy uzyskują dostęp do API W chwili obecnej bez pozwolenia "ViewSalesOrder", domyślnie wiosna domyślnie zgłasza wyjątek "Odmowa dostępu", ale nie powiedział, które pozwolenie nie istnieje (Jest to nasz wymóg, aby wskazać, które pozwolenie jest brakujący).
Czy można rzucić wyjątek, który również zawiera nazwę uprawnienia, więc ostateczny komunikat o błędzie powinien wyglądać tak: "Odmowa dostępu, potrzebujesz uprawnienia ViewSalesOrder" (tutaj nazwa uprawnienia powinna pochodzić z @ adnotacji autoryzacji)?
Należy pamiętać, że mamy 100 takich restAPI w miejscu, więc ogólne rozwiązanie będzie bardzo cenione.