繁体   English   中英

如何覆盖默认的Spring Boot登录页面?

[英]How to override default Spring Boot Login page?

我对Spring Boot 2完全陌生,并且有一个我要运行的简单应用程序。 不幸的是,每次我运行服务时,都会得到Spring Boot的此登录表单。 有什么办法可以改写吗?

我已经尝试过此问题的解决方案,但对我而言不起作用:

如何在Spring Boot中覆盖Spring Security默认配置

到目前为止,这是我需要的代码:

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!";
    }
}

- 编辑:@devshawn-
我尝试了排除SecurityAutoConfiguration.class的解决方案,但是当我尝试访问端点时却以某种方式收到此错误消息:

在此处输入图片说明

我假设您使用的是Spring Boot 2,因为您没有提到要使用哪个版本的Spring。 在Spring Boot 2中,您无法像在Spring Boot 1中那样通过属性文件禁用默认登录。根据您要实现的目标,有几种方法可以执行此操作。

允许所有访问,稍后再保护安全端点

添加一个标题为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})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM