Вы можете использовать параметры javamelody authorized-users
для http basi c auth или allowed-addr-pattern
для доступа на основе IP-адреса. См. https://github.com/javamelody/javamelody/wiki/UserGuide#16 -security
Например, в application.yml, если вы используете Spring-boot:
javamelody:
init-parameters:
authorized-users: admin:password
Или вы можете использовать Spring Security с .antMatchers("/monitoring").hasRole("ADMIN")
.
Например, в Spring-boot 2, с использованием зависимости spring-boot-starter-security, basi c auth и в памяти пользователя:
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.httpBasic().and().authorizeRequests().antMatchers("/monitoring").hasRole("ADMIN")
.anyRequest().permitAll();
}
@Bean
@Override
public UserDetailsService userDetailsService() {
UserDetails user = User.withDefaultPasswordEncoder().username("user").password("password")
.roles("USER").build();
UserDetails admin = User.withDefaultPasswordEncoder().username("admin").password("password")
.roles("ADMIN").build();
return new InMemoryUserDetailsManager(user, admin);
}
}
Если вы используете Spring безопасность без загрузки Spring, обязательно установите фильтр Spring Security перед фильтром javamelody Monitoring в вашем файле. xml.