2017-07-17 21 views
2

春のセキュリティを持つ春のブートアプリケーションでapplication.propertiesのcontextPathを/ myWebAppに設定しました。/デフォルトのURLは/ loginとしてコンテキストパスを/ myWebAppとして設定しません。/myWebApp/loginではなく/ loginとして私をリダイレクトします。 Springセキュリティ4.0でcontextPathを設定するには? tomcatがコンテキスト[]で警告を表示すると、コンテナにアプリケーションをデプロイしません。春のセキュリティで春のブートでコンテキストパスを設定する方法

+0

任意の提案を開始します?私は同じ問題があります。 – RaHe

答えて

0

Springブートでは、コンテキストパスを3通りに設定できます。

最初にapplication.propertiesのようにしてください。

server.contextPath=/myWebApp 

第二の変化は、同様に、プログラムで行うことができます。

import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; 
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; 
import org.springframework.stereotype.Component; 

@Component 
public class CustomContainer implements EmbeddedServletContainerCustomizer { 

    @Override 
    public void customize(ConfigurableEmbeddedServletContainer container) { 

     container.setPort(8181); 
     container.setContextPath("/myWebApp "); 

    } 

} 

そして最後に、直接システムプロパティを渡すことによって:

java -jar -Dserver.contextPath=/myWebApp spring-boot-example-1.0.jar 

春のセキュリティConfigがあります:

@Configuration 
@EnableWebSecurity 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http 
       .csrf().disable() 
       .authorizeRequests() 
       .antMatchers("/static/**").permitAll() 
       .anyRequest().authenticated() 
       .and() 
       .formLogin() 
       .loginPage("/login") 
       .usernameParameter("username") 
       .passwordParameter("password") 
       .loginProcessingUrl("/j_spring_security_check") 
       .failureUrl("/login?error=true") 
       .defaultSuccessUrl("/index") 
       .and() 
       .logout().logoutUrl("/logout").logoutSuccessUrl("/login") 
       ; 

    } 
} 

、それ以上変更せずに、Tomcatはこの問題に自動的に/myWebApp/login

関連する問題