कौन सा .antMatchers() मुझे परिभाषित करना चाहिए कि अगर मैं लॉग इन नहीं करता हूं तो मैं अपने आवेदन के प्रत्येक अनुरोध को अवरुद्ध करना चाहता हूं?
तुम सिर्फ हर अनुरोध को ब्लॉक करना चाहते हैं, तो उपयोगकर्ता में लॉग इन नहीं कर रहा है:
@Override
protected void configure(HttpSecurity http) throws Exception
{
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login").permitAll()
.and()
.logout().permitAll()
.and()
.csrf().disable();
}
आप वास्तव में नहीं है किसी भी antMatcher
की जरूरत है, प्रवेश पृष्ठ के लिए भी नहीं, .formLogin()
में के रूप में भाग, आप पहले से ही उस पृष्ठ के लिए .permitAll()
शामिल हैं।
निश्चित संसाधनों (सीएसएस, जे एस, चित्र) के लिए और मन में VAADIN साथ
अब आप इस अधिभावी एक और तरीका कर सकते हैं: एक स्प्रिंग बूट परियोजना के साथ
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring()
.antMatchers("/resources/**", "/VAADIN/**");
}
, मैं भी मुद्दा नहीं मिला अगर मैं नहीं था ' web.ignoring().antMatchers(...)
में अनुरोधों को "/vaadinServlet/**"
पर अनुमति दें।
"/ UIDL/**" जैसे पैटर्न क्या हैं और मुझे उनके लिए क्या चाहिए?
जब सर्वर को अनुरोध प्राप्त होता है, तो वसंत सुरक्षा इन पैटर्न का उपयोग यह निर्धारित करने के लिए करती है कि उसे अनुरोध तक पहुंच को अस्वीकार या अस्वीकार कर देना चाहिए या नहीं।
वे आपके आवेदन की संदर्भ रूट के बाद यूआरआई के हिस्से का प्रतिनिधित्व करते हैं, उदा। आपके संदर्भ जड़ /
जा रहा है के मामले में, तो http://server.com/UIDL/hello
यूआरआई के हिस्से की तरह एक अनुरोध है कि वसंत सुरक्षा मौसम का निर्धारण करने के acces देने में करेगा या /UIDL/hello
**
किसी भी उप स्तर, उदा सहित कुछ भी प्रतिनिधित्व करता नहीं होगा /UIDL/**
पैटर्न के लिए, अनुरोध /UIDL/hello/world/and/any/more/levels
मिलान करेगा।
एक भी *
है जो कुछ भी प्रस्तुत करता है, लेकिन सब स्तरों सहित, उदाहरण के लिए /UIDL/*
पैटर्न के लिए, अनुरोध /UIDL/hello
मिलान करेगा, लेकिन /UIDL/hello/world
नहीं।
VAADIN विचारों और UI के लिए के रूप में, मुझे यकीन है कि है कि यह antMatchers
उपयोग करने के लिए अनुदान या एक्सेस को स्वीकार किया जा सकता है नहीं कर रहा हूँ, लेकिन इसके बजाय आप @EnableGlobalMethodSecurity(prePost = enabled)
साथ विन्यास वर्ग व्याख्या और फिर आगे @PreAuthorize(/* spel expression */)
एनोटेशन उपयोग करने में सक्षम हो सकता है पहुंच देने या अस्वीकार करने के विचार।
अद्यतन: सवाल टिप्पणी करने के लिए उत्तर देना:
- आप कॉन्फ़िगर (WebSecurity वेब) पहुंच की अनुमति देते साथ कॉन्फ़िगर (HttpSecurity http) के बजाय संसाधनों की अनदेखी के साथ विधि का प्रयोग क्यों करते हैं? क्या महत्वपूर्ण मतभेद हैं?
अंतर यह है कि WebSecurity#ignoring()
अनुरोध स्प्रिंग सुरक्षा फिल्टर श्रृंखला से छोड़ दिया जा रहा है बनाता है, और यह सुझाया गया तरीका स्थिर संसाधनों के लिए, निश्चित संसाधनों से कुछ और configure(HttpSecurity http)
अंदर कार्रवाई की जानी चाहिए है।
source
- क्यों आप "/ VAADIN/**" पथ की उपेक्षा करते हैं?
क्योंकि उस पथ विषयों, विजेट सेट, और अनुकूलन है, जो स्थिर सामग्री है सेवा करने के लिए प्रयोग किया जाता है, पथ उत्पादन वातावरण में, Vaadin जार से dinamycally यह सेवा करने के लिए प्रयोग किया जाता है, लेकिन जैसा कि Vaadin दस्तावेज में सुझाव दिया स्थिर रूप से परोसा जाना चाहिए, क्योंकि यह तेज़ है।
source
- मैं "/ *" और "/ **" का अर्थ कल्पना कर सकता है, लेकिन क्या "UIDL" और "दिल की धड़कन" वास्तव में क्या मतलब है? उन्हें अनुमति क्यों है?
UIDL:
उपयोगकर्ता इंटरफ़ेस परिभाषा भाषा (UIDL) एक ब्राउज़र के लिए वेब सर्वर से प्रतिक्रिया में serializing यूजर इंटरफेस सामग्री और परिवर्तन के लिए एक भाषा है। विचार यह है कि सर्वर-साइड घटक भाषा के साथ स्वयं "पेंट" स्क्रीन (एक वेब पेज) पर "पेंट" करें। यूआईडीएल संदेशों को ब्राउज़र में पार्स किया गया है और जीडब्ल्यूटी विजेट में अनुवाद किया गया है।
source
हार्टबीट अनुरोध की पुष्टि है कि कनेक्शन अभी भी सर्वर और ग्राहक, या सत्र के बीच जिंदा समाप्त हो गई है नहीं किया है समय-समय पर प्रदर्शन कर रहे हैं।
source - see sections 4.8.5, 4.8.6, 4.8.7 and 4.8.8
आपके उत्तर के लिए धन्यवाद। 1. आप ** कॉन्फ़िगरेशन (HSpSecurity http) ** के बजाय संसाधनों को अनदेखा करने के साथ ** कॉन्फ़िगरेशन (वेब सुरक्षा सुरक्षा वेब) ** विधि का उपयोग क्यों करते हैं? क्या महत्वपूर्ण मतभेद हैं? 2. आप "/ VAADIN/**" पथ को क्यों अनदेखा करते हैं? 3. मैं "/ *" और "/ **" के अर्थ की कल्पना कर सकता हूं, लेकिन "यूआईडीएल" और "हार्टबेट" का वास्तव में क्या अर्थ है? उन्हें अनुमति क्यों है? – shinchillahh