gpt4 book ai didi

java - 为什么 Spring Security Java Config AntMatcher 不阻止这个 url?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:37 33 4
gpt4 key购买 nike

我使用 Spring Boot 和 Spring Security 配置了一个 super 简单的应用程序并添加了基于 URL 的安全性,但它没有得到尊重。例如,如果我以“侦察员”身份登录并点击类似 /api/leaders 的管理 URL,我仍然可以看到它。

我尝试了很多 URL 排列组合,甚至尝试了 anyRequest().denyAll() 并且 scout 用户仍然可以访问它。

@Configuration
@EnableAutoConfiguration
@ComponentScan(basePackages = {"com.ssoward.scouts"})
public class MainConfiguration {

public static void main(String[] args) throws Exception {
SpringApplication.run(MainConfiguration.class, args);
}

//security
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
static class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
@Bean
public AuthenticationManager authenticationManagerBean() throws Exception {
return authenticationManager();
}

@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/api/leaders*").hasRole("ADMIN") //url level security
.antMatchers("/api/scouts*").hasRole("USER"); //url level security
}

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("leader").password("password").roles("USER", "ADMIN").and()
.withUser("scout").password("password").roles("USER");
}
}
}

整个项目在 Github 上:https://github.com/ssoward/scouts

最佳答案

Spring Actuator 自动配置 Spring Security,但是当我添加上面提到的配置时,它并没有删除 Spring Actuator 添加的配置。

解决方案:通过将以下内容添加到您的应用程序属性文件来禁用 Spring Actuator 添加的安全性:security.basic.enabled=false

关于java - 为什么 Spring Security Java Config AntMatcher 不阻止这个 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21123610/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com