मैं जावा कॉन्फ़िगरेशन के साथ स्प्रिंग-सुरक्षा 3.2.0.RC2 का उपयोग कर रहा हूं। मैंने एक सरल HttpSecurity कॉन्फ़िगरेशन स्थापित किया है जो मूल vuth/v1/** पर पूछता है। प्राप्त अनुरोधों काम करते हैं लेकिन पोस्ट अनुरोध के साथ विफल:जावा कॉन्फ़िगर के साथ स्प्रिंग-सिक्योरिटी में, httpBasic POST सीएसआरएफ टोकन क्यों चाहता है?
HTTP Status 403 - Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.
मेरे सुरक्षा config इस तरह दिखता है:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Resource
private MyUserDetailsService userDetailsService;
@Autowired
//public void configureGlobal(AuthenticationManagerBuilder auth)
public void configure(AuthenticationManagerBuilder auth)
throws Exception {
StandardPasswordEncoder encoder = new StandardPasswordEncoder();
auth.userDetailsService(userDetailsService).passwordEncoder(encoder);
}
@Configuration
@Order(1)
public static class RestSecurityConfig
extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/v1/**").authorizeRequests()
.antMatchers("/v1/**").authenticated()
.and().httpBasic();
}
}
}
किसी भी मदद के लिए इस पर बहुत सराहना।
आप CSRF निष्क्रिय करने के लिए (क्योंकि यह एक कारण के लिए है) चाहते dan't यदि आप जोड़ सकते हैं csrf-value के साथ एक छिपी हुई फ़ील्ड और स्वीकृत पोस्ट में स्टर्मंडेलक्स सुझाव जैसे मूल्य जोड़ें। यह मेरे लिए ठीक काम करता है, सीएसआरएफ – Xtroce
@Xtroce अक्षम किए बिना, हालांकि मेरे मामले में मुझे AJAX पोस्ट * हेडर * में 'एक्स-सीएसआरएफ-टोकन' जोड़ना पड़ा। (AJAX पोस्ट * पैरामीटर * में '_csrf' जोड़ना * काम नहीं किया।) – inanutshellus
@Xtroce टिप्पणी में जोड़ना, अगर आप temmeating के लिए थाइमेलीफ का उपयोग करते हैं, तो आप