2016-02-15 4 views
0

Я слежу за учебником по интеграции Spring Security with AngularJS, но он использует Spring Boot. Я могу получить примеры учебников, но мне нужно, чтобы мое приложение запускалось как обычное приложение MVC под Tomcat.Spring MVC AngularJS Не найдено сопоставления

Проблема заключается в получении приложения для перехода на страницу index.html для исходного представления. Единственные сопоставления, которые я имею в контроллерах, - это вызовы REST, которые я хочу получать из Angular, но я не могу заставить приложение перейти на индексную страницу. Spring Boot делает это автоматически, но я собираюсь запустить это как веб-приложение под Tomcat. Попытка туда напрямую вызывает ошибку «Нет сопоставления найденных».

Я использую конфигурацию Java и имею antMatchers и т. Д., Как описано в учебнике.

ответ

0

Вот несколько статей в моих конфигурационных классах, чтобы это произошло.

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http.authorizeRequests() 
      .antMatchers("/index.html", "/home.html", "/login.html", "/").permitAll() 
      .antMatchers("/css/**").permitAll() 
      .antMatchers("/js/**").permitAll() 
      .antMatchers(HttpMethod.POST, "/user").permitAll().anyRequest() 
      .authenticated().and() 
      .csrf() 
      .csrfTokenRepository(csrfTokenRepository()).and() 
      .addFilterAfter(csrfHeaderFilter(), CsrfFilter.class); 

    if ("true".equals(System.getProperty("httpsOnly"))) { 
     LOGGER.info("launching the application in HTTPS-only mode"); 
     http.requiresChannel().anyRequest().requiresSecure(); 
    } 
} 




@Configuration 
@EnableWebMvc 
@ComponentScan("com.mygroupnotifier.controller") 
public class ServletContextConfig extends WebMvcConfigurerAdapter { 
@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/css/**").addResourceLocations("/resources/static/css/"); 
    registry.addResourceHandler("/js/**").addResourceLocations("/resources/static/js/"); 
    registry.addResourceHandler("/*.html").addResourceLocations("/resources/static/"); 
} 

@Override 
public void addViewControllers(ViewControllerRegistry registry) { 
    registry.addViewController("/").setViewName("forward:/index.html"); 
} 

}

Как обычно самая трудная часть этого становится ведущим и заканчивая/на классы и HTML-файлов.