पर ओवरराइड नहीं किया जा सकता है। मैं @PreAuthorize
एनोटेशन के साथ नियंत्रक की रक्षा करने की कोशिश कर रहा हूं और विभिन्न व्यवहारों को अलग-अलग @PreAuthorize
के साथ एनोटेट करके उस व्यवहार को ओवरराइड करने का प्रयास कर रहा हूं। समस्या यह है कि, वसंत पहले विधि एनोटेशन का मूल्यांकन कर रहा है (अनुदान पहुंच) और फिर कक्षा एनोटेशन का मूल्यांकन कर रहा है (पहुंच से इनकार करता है)।स्प्रिंग सिक्योरिटीज @ प्राइवॉर्डेनाइजेशन टाइप स्तर पर विधि स्तर
क्या इस आदेश को रिवर्स करने का कोई तरीका है? मैं अभी तक इसे समझ नहीं पाया।
संपादित करें:
@PreAuthorize("isAnonymous()")
@RequestMapping(value = "/create", method = RequestMethod.GET)
public String renderCreateEntity(ModelMap model) {
return userService.renderCreateEntity(model);
}
इस नियंत्रक तथापि के लिए मानक, केवल पूरी तरह से प्रमाणीकृत उपयोगकर्ताओं अनुमति देने के लिए किया जाना चाहिए:
विधि स्तर पर, मैं केवल गैर पंजीकृत उपयोगकर्ताओं को पहुंच प्रदान करना चाहते हैं:
@Controller
@RequestMapping(value = "/user")
@PreAuthorize("isFullyAuthenticated()")
public class UserController { [...] }
जब डिबग-कदम एप्लिकेशन के माध्यम से, मुझे लगता है कि isAnonymous()
पहले मूल्यांकन किया जाता है और उसके बाद isFullyAuthenticated()
इस प्रकार जिसके परिणामस्वरूप पहुंच के अनुदान में और तुरंत पहुंच को अस्वीकार कर दिया।
स्प्रिंग सुरक्षा का कौन सा संस्करण आप उपयोग कर रहे हैं? – beny23
सब कुछ वसंत 3.0.5 है .RELEASE – chzbrgla