से निपटने त्रुटि मैं Spring Oauth2
और Spring Pre-post Annotations
उपयोग कर रहा हूँ के साथ Spring-boot
PreAuthorize
मैं एक सेवा वर्ग MyService
है। MyService
तरीकों में से एक है:
@PreAuthorize("#id.equals(authentication.principal.id)")
public SomeResponse getExampleResponse(String id){...}
मैं कुछ तरीके से json कि फोन करने वाले नियंत्रक द्वारा दिया जाता है नियंत्रित कर सकते हैं?
json कि डिफ़ॉल्ट रूप से दिया जाता है है:
{error : "access_denied" , error_message: ".."}
मैं error_message
परम नियंत्रित करने में सक्षम होना चाहता हूँ। मैं करने के लिए कुछ इसी तरह की तलाश में हूँ:
@PreAuthorize(value ="#id.equals(authentication.principal.id)", onError ="throw new SomeException("bad params")")
public SomeResponse getExampleResponse(String id){...}
एक तरह से मैं यह कर के बारे में सोचा है ExceptionHandler
@ExceptionHandler(AccessDeniedException.class)
public Response handleAccessDeniedException(Exception ex, HttpServletRequest request){
...
}
का उपयोग करना द्वारा लेकिन मैं अपवाद की message
नियंत्रित नहीं कर सकते। और मैं यह भी सुनिश्चित नहीं कर सकता कि यह Exception
भावी रिलीज में फेंक दिया जाएगा
'{त्रुटि:" access_denied ", error_message:" .. "} 'वसंत बूट डिफ़ॉल्ट त्रुटि हैंडलर से आउटपुट की तरह दिखता है। क्या आप इसका उपयोग कर रहे हैं? –
हां @ डेवसियर मैं आपके उत्तर के लिए स्प्रिंग बूट – royB