lỗi Tôi đang sử dụng Spring Oauth2
và Spring Pre-post Annotations
Với Spring-boot
sẵn trong giai đoạn xử lý
I Have a lớp dịch vụ MyService
. một trong các phương pháp MyService
là:
@PreAuthorize("#id.equals(authentication.principal.id)")
public SomeResponse getExampleResponse(String id){...}
tôi có thể kiểm soát theo cách nào đó bộ điều khiển người gọi được trả về không?
các json được trả về theo mặc định là:
{error : "access_denied" , error_message: ".."}
I Want để có thể kiểm soát error_message
param. Tôi đang tìm một cái gì đó tương tự như:
@PreAuthorize(value ="#id.equals(authentication.principal.id)", onError ="throw new SomeException("bad params")")
public SomeResponse getExampleResponse(String id){...}
Một cách tôi nghĩ làm việc đó là bằng cách sử dụng ExceptionHandler
@ExceptionHandler(AccessDeniedException.class)
public Response handleAccessDeniedException(Exception ex, HttpServletRequest request){
...
}
nhưng tôi không thể kiểm soát message
của ngoại lệ. và tôi cũng không thể chắc chắn rằng điều này Exception
sẽ được ném trong các bản phát hành trong tương lai
'{error:" access_denied ", error_message:" .. "}' trông giống như đầu ra từ trình xử lý lỗi mặc định khởi động Spring. Đó là những gì bạn đang sử dụng? –
yes @DaveSyer Tôi đang sử dụng Spring boot – royB