2014-09-03 12 views
8

का उपयोग करते समय मूल प्रमाणीकरण अक्षम करें मैं स्प्रिंग सुरक्षा जावा कॉन्फ़िगरेशन का उपयोग कर एक वेब एप्लिकेशन सुरक्षित करने का प्रयास कर रहा हूं।स्प्रिंग सुरक्षा जावा कॉन्फ़िगरेशन

यह कैसे विन्यास लग रहा है: -

@Configuration 
@EnableWebMvcSecurity 
public class SecurityConfiguration extends WebSecurityConfigurerAdapter { 

    private String googleClientSecret; 

    @Autowired 
    private CustomUserService customUserService; 

    /* 
    * (non-Javadoc) 
    * 
    * @see org.springframework.security.config.annotation.web.configuration. 
    * WebSecurityConfigurerAdapter 
    * #configure(org.springframework.security.config 
    * .annotation.web.builders.HttpSecurity) 
    */ 
    @Override 
    protected void configure(HttpSecurity http) throws Exception { 

     // @formatter:off 
     http 
      .authorizeRequests() 
       .antMatchers(HttpMethod.GET, "/","/static/**", "/resources/**","/resources/public/**").permitAll() 
       .anyRequest().authenticated() 
      .and() 
       .formLogin() 
        .and() 
       .httpBasic().disable() 
      .requiresChannel().anyRequest().requiresSecure(); 
     // @formatter:on 
     super.configure(http); 
    } 

    @Override 
    protected void configure(AuthenticationManagerBuilder auth) 
      throws Exception { 
     // @formatter:off 
     auth 
      .eraseCredentials(true) 
      .userDetailsService(customUserService); 
     // @formatter:on 
     super.configure(auth); 
    } 
} 

सूचना है कि मैं स्पष्ट रूप से विकलांग HTTP मूल प्रमाणीकरण का उपयोग करते हुए: -

.httpBasic().disable() 

मैं अभी भी HTTP Authenticaton प्रॉम्प्ट बॉक्स हो रही है, जबकि पहुँचने के एक सुरक्षित यूआरएल। क्यूं कर?

कृपया इसे ठीक करने में मेरी सहायता करें। मैं सिर्फ डिफ़ॉल्ट लॉगिन फॉर्म प्रस्तुत करना चाहता हूं जो बंडल आता है।

स्प्रिंग बूट स्टार्टर संस्करण: 1.1.5 स्प्रिंग सुरक्षा संस्करण: 3.2.5

धन्यवाद

+6

अपने 'application.properties' में' security.basic.enabled = false' जोड़ें। इसके अलावा आपको अपने ओवरराइड विधि से 'super.configure' को कॉल नहीं करना चाहिए। –

+0

@ एम। डीनियम ने इसे ठीक किया। लेकिन जब जावा जावा कॉन्फ़िगरेशन में स्पष्ट रूप से अक्षम किया गया तो यह अक्षम क्यों नहीं किया गया था? –

+0

आपके पास समग्र कॉन्फ़िगरेशन में प्रत्येक योगदान कॉन्फ़िगरेशन एकाधिक 'WebSecurityConfigurer' हो सकता है। यह बहुत अच्छी तरह से हो सकता है कि आपके पास अपनी वेबसाइट का एक बाकी हिस्सा है जो मूल लेख और सामान्य साइट द्वारा संरक्षित है। आप आराम के लिए 2 'WebSecurityConfigurer' बना सकते हैं और एक फॉर्म के लिए। आप http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-security.html (स्प्रिंग बूट संदर्भ, सुरक्षा अनुभाग) को भी चेकआउट करना चाहेंगे। –

उत्तर

6

मामले में आप वसंत बूट, documentation राज्यों का उपयोग करें:

बंद स्विच करने के बूट डिफ़ॉल्ट एक वेब आवेदन में पूरी तरह से विन्यास आप @EnableWebSecurity

012 के साथ एक सेम जोड़ सकते हैं

तो यदि आप स्वयं को पूरी तरह से अनुकूलित करना चाहते हैं तो यह एक विकल्प हो सकता है।

बस इसे स्पष्ट करने के लिए ... आपको बस अपने मुख्य एप्लिकेशन क्लास या एप्लिकेशन कॉन्फ़िगरेशन क्लास पर @EnableWebSecurity एनोटेशन डालना होगा।

+2

यह मेरे लिए काम नहीं करता है (मैंने अपने मुख्य स्प्रिंग बूट क्लास और विस्तारित WebSecurityConfigurerAdapter पर @EnableWebSecurity डाल दिया है)। वास्तव में इसका अर्थ है 'एनेबल वेब सुरक्षा' के साथ एक बीन जोड़ें? – Ivan

16

सबसे पहले कॉलिंग super.configure (http); इससे पहले कि आप अपने पहले कॉन्फ़िगरेशन को ओवरराइड करेंगे। इस प्रयास करें:

http 
    .authorizeRequests() 
     .anyRequest().authenticated() 
     .and() 
    .formLogin() 
     .and() 
    .httpBasic().disable(); 
+1

छोटे सुधार .. होना चाहिए .httpBasic() अक्षम()। – ticktock

-4

मेरे लिए काम किया है:

  http 
       .authorizeRequests() 
       .anyRequest().permitAll(); 
+5

यह मूल सुरक्षा को अक्षम नहीं करेगा, यह सभी अनुरोधों के लिए सुरक्षा जांच को अनदेखा कर देगा। – jkerak

1

आप इस प्रकार HttpSecurity उदाहरण के माध्यम से formLogin निष्क्रिय कर सकते हैं:

http.authorizeRequests().antMatchers("/public/**").permitAll() 
     .antMatchers("/api/**").hasRole("USER") 
     .anyRequest().authenticated() 
     .and().formLogin().disable(); 

यह 403 HTTP त्रुटि जब प्राप्त नेतृत्व करेंगे किसी भी सुरक्षित संसाधन तक पहुंचने का प्रयास

संबंधित मुद्दे