डेव पहले से ही अच्छी तरह से बताया गया है, लेकिन यहाँ प्रमाणन स्रोत के रूप में WebSecurityConfigurerAdapter और डेटाबेस का उपयोग कर के साथ कुछ पूर्ण उदाहरण।
SecurityConfig.java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private DataSource dataSource;
@Override
public void configure(WebSecurity web) throws Exception {
// Ignore any request that starts with /resources or /webjars
web.ignoring()
.antMatchers("/resources/**")
.antMatchers("/webjars/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
// for app access
http.authorizeRequests()
.antMatchers("/configuration").hasRole("ADMIN")
.antMatchers("/user").hasRole("ADMIN")
.anyRequest().fullyAuthenticated()
.and()
.exceptionHandling().accessDeniedPage("/auth_error")
.and()
.formLogin().loginPage("/login").failureUrl("/login?error").permitAll()
.and()
.logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/").invalidateHttpSession(true);
// for management access with basic auth
http.httpBasic()
.and()
.authorizeRequests()
.antMatchers("/management/**").hasRole("ADMIN");
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().dataSource(dataSource)
.passwordEncoder(new BCryptPasswordEncoder());
}
}
और ये मेरे application.properties है
application.properties
# MANAGEMENT HTTP SERVER (ManagementServerProperties)
management.port=8081
management.address=127.0.0.1
management.context-path=/management
management.security.enabled=true
# MVC ONLY ENDPOINTS
endpoints.jolokia.path=/jolokia
endpoints.jolokia.sensitive=true
endpoints.jolokia.enabled=true
# JMX ENDPOINT (EndpointMBeanExportProperties)
endpoints.jmx.enabled=true
endpoints.jmx.domain=org.springboot
endpoints.jmx.unique-names=false
# ENDPOINT
endpoints.enabled=true
endpoints.shutdown.id=shutdown
endpoints.shutdown.sensitive=true
endpoints.shutdown.enabled=true
# HYPERMEDIA ENDPOINTS
endpoints.actuator.enabled=true
endpoints.actuator.path=/actuator
endpoints.actuator.sensitive=false
आप spring application properties
से अधिक अंतिमबिंदुओं गुण जाँच कर सकते हैं
प्रबंधन अनुरोध उदाहरण
वहाँ नियंत्रक भूमिका उपयोगकर्ता (उपयोगकर्ता नाम: व्यवस्थापक, पासवर्ड: पासवर्ड) पहले से ही डेटाबेस पर शामिल किया।
jolokia के माध्यम से HeapMemoryUsage और THREADCOUNT की जाँच के लिए
$ curl -u admin:password -X POST http://127.0.0.1:8081/management/shutdown
{"message":"Shutting down, bye..."}
उदाहरण प्रबंधन अनुरोध को बंद करने के लिए उदाहरण प्रबंधन अनुरोध
$ curl -u admin:password http://127.0.0.1:8081/management/jolokia/read/java.lang:type=Memory/HeapMemoryUsage
{"request":{"mbean":"java.lang:type=Memory","attribute":"HeapMemoryUsage","type":"read"},"value":{"init":268435456,"committed":829947904,"max":3817865216,"used":466033000},"timestamp":1444167809,"status":200}
$ curl -u admin:password http://127.0.0.1:8081/management/jolokia/read/java.lang:type=Threading/ThreadCount
{"request":{"mbean":"java.lang:type=Threading","attribute":"ThreadCount","type":"read"},"value":47,"timestamp":1444174639,"status":200}
स्वास्थ्य
की जाँच के लिए उदाहरण प्रबंधन अनुरोध $ curl -u admin:password http://127.0.0.1:8081/management/health
{"status":"UP","diskSpace":{"status":"UP","free":163634987008,"threshold":10485760},"db":{"status":"UP","database":"H2","hello":1}}
स्रोत
2015-10-06 23:38:35