我是Spring Boot2的新手,我正在尝试运行这个简单的应用程序。不幸的是,每次我运行我的服务时,我都会得到来自Spring Boot的这个登录表单。我有什么方法可以覆盖它吗?
我已经尝试了这个问题的解决方案,但它对我不起作用:
How to override Spring Security default configuration in Spring Boot
以下是我到目前为止所拥有的代码:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ImportResource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* Defines the application, supports service registry, circuit breaker
* for Spring Boot application.
*
* @EnableJpaRepositories - add this to enable
*
* @author himanshu sharma
* @since June 2017
*/
@EnableDiscoveryClient
@EnableCircuitBreaker
@EnableHystrixDashboard
@EnableSwagger2
@EnableCaching
@SpringBootApplication
@ImportResource("classpath:service-config.xml")
@ComponentScan(basePackages = "com.manulife.ap.*, io.swagger")
public class Application{
@Autowired
DiscoveryClient discoveryClient;
/**
* Application start point.
* @param args
*/
public static void main(String[] args){
SpringApplication.run(Application.class, args);
}
@RequestMapping(value="/greeting", method=RequestMethod.GET)
public String sayHello () {
return "Hello from Spring Boot!";
}
}
--EDIT:@devshawn--
我尝试了排除SecurityAutoConfiguration.class
的解决方案,但是当我试图访问我的端点时,不知何故得到了这个错误消息:
发布于 2019-04-08 08:47:26
我假设您使用的是Spring Boot 2,因为您没有提到您使用的是哪个版本的Spring。在spring Boot2中,您不能像在spring Boot1中那样,通过属性文件禁用默认登录。有几种方法可以做到这一点,这取决于您试图实现的目标。
允许所有访问,稍后保护端点
添加一个标题为SecurityConfig
的类,如下所示:
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/**").permitAll();
}
}
这将移除服务中所有终结点的身份验证。稍后,您可以通过这个类进一步配置安全性。
删除安全自动配置
当在类路径上发现Spring security时,Spring Boot会自动配置安全性。如果您不想通过更改您的@SpringBootApplication
注释来自动配置它,您可以将其全部删除。
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
https://stackoverflow.com/questions/55564486
复制相似问题