SpringBoot应用程序 - 服务器上下文路径

时间:2017-11-22 10:38:05

标签: spring spring-mvc spring-boot spring-security

我使用Spring Initializer,嵌入式Tomcat,Thymeleaf模板引擎和包作为可执行的JAR文件生成了一个Spring Boot Web应用程序。

使用的技术:

Spring Boot 2.0.0.M6,Java 8,maven

这是我的安全配置

   @Override
    protected void configure(HttpSecurity http) throws Exception {

        final List<String> activeProfiles = Arrays.asList(env.getActiveProfiles());
        if (activeProfiles.contains("dev")) {
            http.csrf().disable();
            http.headers().frameOptions().disable();
        }

        http
                .authorizeRequests()
                .antMatchers(publicMatchers()).permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin().loginPage("/login").defaultSuccessUrl("/iberia/list")
                .failureUrl("/login?error").permitAll()
                .and()
                .logout().permitAll();
    }

application.properties

server.contextPath=/iberiaWebUtils
server.port=1234

但是,当我在http://localhost:1234/iberiaWebUtils运行应用时,而不是转到http://localhost:1234/iberiaWebUtils/login应用。重定向到http://localhost:1234/login

我也试过

server.context-path=/iberiaWebUtils

具有相同的结果

2 个答案:

答案 0 :(得分:10)

Spring Boot 2.0.0 M1 特定于servlet的服务器属性开始移至db_table = "[your_schema].[your_table]"

enter image description here Spring Boot 2.0.0 M1 Release Notes

因此,您应该使用server.servlet属性。

答案 1 :(得分:1)

尝试在.loginProcessingUrl("/iberiaWebUtils/login")

之后添加loginPage("/login")
    http
            .authorizeRequests()
            .antMatchers(publicMatchers()).permitAll()
            .anyRequest().authenticated()
            .and()
            .formLogin().loginPage("/login")    
            .loginProcessingUrl("/iberiaWebUtils/login")
            .defaultSuccessUrl("/iberia/list")
            .failureUrl("/login?error").permitAll()
            .and()
            .logout().permitAll();