/ / प्रमाणीकरण रोकें प्रमाण पत्र नॉटफाउंड अपवाद जबकि यूनिट-परीक्षण - वसंत, इकाई-परीक्षण, वसंत-सुरक्षा

यूनिट-परीक्षण - वसंत, इकाई-परीक्षण, वसंत-सुरक्षा के दौरान प्रमाणीकरण प्रमाण पत्र नॉटफाउंड अपवाद रोकें

फेंकने से वसंत सुरक्षा को कैसे रोकें AuthenticationCredentialsNotFoundException मेरे यूनिट परीक्षण में? मैं "उपयोगकर्ता को प्रमाणित नहीं करना चाहता हूं, या अज्ञात रूप से प्रमाणीकृत होना चाहता हूं।

मैंने ऐसा करने की कोशिश की:

    SecurityContext ctx = SecurityContextHolder.createEmptyContext();
SecurityContextHolder.setContext(ctx);
//  ctx.setAuthentication();

लेकिन मुझे नहीं पता कि उस अनाम प्रमाणीकरण वस्तु को कहां से प्राप्त किया जाए।

उत्तर:

उत्तर № 1 के लिए 4

आपका कोड उदाहरण बहुत ही विशिष्ट है। मुझे लगता है कि आप से लिया गया मूल विन्यास का उपयोग कर रहे हैं वसंत सुरक्षा पृष्ठ शुरू हो रहा है

अज्ञात रूप से उपयोगकर्ता को प्रमाणीकृत करने के लिए आपको एक अज्ञात उपयोगकर्ता को सुरक्षा संदर्भ में रखना होगा:

SecurityContext ctx = SecurityContextHolder.createEmptyContext();
SecurityContextHolder.setContext(ctx);
ctx.setAuthentication(new UsernamePasswordAuthenticationToken("anonymous", "", Arrays.asList(new SimpleGrantedAuthority("ROLE_ANONYMOUS"))));

अन्यथा आपको अपने प्रासंगिक यूआरएल से सभी सुरक्षा मैपिंग या एनोटेशन हटा देना चाहिए। देख:

मैं अनुमति कैसे प्राप्त करूं स्प्रिंग सिक्योरिटी में प्रमाणीकरण प्रमाण-पत्रों को फेंकने के लिए @Controller ऑब्जेक्ट में NoFoundException?