如何在Spring应用程序中为Java Melody Monitor URL添加安全性

问题描述 投票:0回答:1

我们在春季应用中使用Java Melody。我想增加安全性,以仅由管理员用户访问/monitoring网址。我必须检查一些属性值和基于该属性值和权限的访问权限。

有哪些不同的方法可以实现这一目标?我们可以在春季安全中做到吗?

[如果需要在此处提供其他信息,请告诉我。

java spring servlets java-melody
1个回答
0
投票

您可以将javamelody参数authorized-users用于http基本身份验证,或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依赖性,基本身份验证并在内存用户的存储中:

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 Security,请确保在Web.xml文件中将Spring Security过滤器放在javamelody Monitoring过滤器之前。

© www.soinside.com 2019 - 2024. All rights reserved.