提问人:kycrow32 提问时间:6/14/2018 最后编辑:kycrow32 更新时间:11/17/2023 访问量:12007
Spring Boot 2.0:如何禁用特定端点的安全性
Spring Boot 2.0: how to disable security for a particular endpoint
问:
我需要完全绕过Spring Boot 2.0应用程序中某些端点的安全性(身份验证/授权) - 端点,如“/version”和“/robots.txt” - 但保持所有其他端点的安全性。
更复杂的是,我正在从事一个项目,而这个项目是更大项目的一部分。我的公司还有另一个小组,他们提供了一个利用 Spring Security 的库。这之所以相关,是因为这意味着我不能简单地覆盖一个 spring 安全类来使它工作——这些类已经被我无法控制的代码覆盖了。
有没有办法将 spring boot 2.0 配置为绕过某些端点的身份验证?
在 sprint boot 1.5 中,我们可以在 application.yml 文件中指定以下内容: security.ignored:/版本 但在 Spring Boot 2.0 中,这不再有效。
答:
8赞
kycrow32
6/15/2018
#1
费德里科的答案是正确的。我在Spring Boot 2.0类中添加了以下类:
package com.example.demo;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class DemoConfigurer extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception{
http.authorizeRequests().antMatchers("/version").permitAll();
super.configure(http);
}
}
}
评论
management.security.enabled=true
configure(HttpSecurity httpSecurity)
.antMatchers('/swagger-ui.html').permitAll()