标签:spring-security spring java spring-mvc
使用Spring Boot和Spring Security,我配置了一个超级简单的应用程序,并基于URL添加了安全性,但是并不尊重它.例如,如果我以“侦查员”身份登录并点击/ api / leaders之类的管理URL,我仍然可以看到它.
我已经尝试了URL的许多排列,甚至尝试了anyRequest().denyAll(),并且侦察用户仍然可以访问它.
@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
标签:spring-security,spring,java,spring-mvc 来源: https://codeday.me/bug/20191122/2058246.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。