सुरक्षित करने में असमर्थ मैं स्प्रिंग बूट एक्ट्यूएक्टर एंडपॉइंट्स को सुरक्षित करने की कोशिश कर रहा हूं। मेरे पास /api
आरईएसटी इंटरफेस पर कामकाजी सुरक्षा है, लेकिन अंतर्निहित एंडपॉइंट्स पर सुरक्षा जोड़ने की कोशिश करना प्रतीत नहीं होता है।स्प्रिंग बूट प्रबंधन एक्ट्यूएटर एंडपॉइंट्स
management.context-path=/management
मैं अपने जावा कॉन्फ़िग
@Override
protected void configure(HttpSecurity http) throws Exception
{
http.csrf().disable();
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.authorizeRequests()
.antMatchers("/api/**").hasRole("READONLY")
.antMatchers("/management/**").hasRole("ADMIN");
SecurityConfigurer<DefaultSecurityFilterChain, HttpSecurity> securityConfigurer = new XAuthTokenConfigurer(userDetailsServiceBean());
http.apply(securityConfigurer);
}
जब मैं अपने ब्राउज़र का उपयोग /api
से नीचे कुछ भी करने के लिए जाने के लिए इस है, मैं:
मैं में मेरी application.properties
अंतिम बिंदुओं का समूह की स्थापना की है उम्मीद के अनुसार 403 वापस प्राप्त करें। उदाहरण के लिए/management/info
करने के लिए जा रहे हैं, मैं देख रहा हूँ JSON लौटाए जाने जहां मैं भी एक 403
मैं अपने application.properties
फ़ाइल को यह जोड़ने की कोशिश की उम्मीद करेंगे:
management.security.role=ADMIN
लेकिन है कि या तो मदद नहीं की।
डिबग आउटपुट शो:
2014-05-02 10:15:30 DEBUG [localhost-startStop-1] ExpressionBasedFilterInvocationSecurityMetadataSource -
Adding web access control expression 'hasRole('ROLE_READONLY')', for Ant [pattern='/api/**']
2014-05-02 10:15:30 DEBUG [localhost-startStop-1] ExpressionBasedFilterInvocationSecurityMetadataSource -
Adding web access control expression 'hasRole('ROLE_ADMIN')', for Ant [pattern='/management/**']
और फिर मैं क्यों HTTP GET का प्रयास करें:
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] AntPathRequestMatcher - Checking match of request : '/management/info'; against '/css/**'
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] AntPathRequestMatcher - Checking match of request : '/management/info'; against '/js/**'
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] AntPathRequestMatcher - Checking match of request : '/management/info'; against '/images/**'
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] AntPathRequestMatcher - Checking match of request : '/management/info'; against '/**/favicon.ico'
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] AntPathRequestMatcher - Checking match of request : '/management/info'; against '/management/info'
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] FilterChainProxy - /management/info has an empty filter list
पूरी तरह से सही! मैंने जिन 2 कोशिश की हैं वे '/ info' और'/health' हैं और दोनों हमेशा उपलब्ध हैं। यदि मैं उदाहरण के लिए '/ beans' का उपयोग करता हूं, तो मुझे अपेक्षित 403 वापस मिलते हैं। आप शायद यह जानकारी [दस्तावेज़ों में] जोड़ सकते हैं (http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#production-ready- संवेदनशील-endpoints)? –
यह वहां है: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready- संवेदनशील-endpoints, http://docs.spring.io/spring-boot/docs/वर्तमान/संदर्भ/htmlsingle/# उत्पादन के लिए तैयार-अंतिमबिंदुओं। यदि आप और स्पष्टीकरण का सुझाव देना चाहते हैं, तो कृपया करें। –
दरअसल, ऐसा लगता है कि मैंने तालिका में 'संवेदनशील' कॉलम नहीं देखा था। –