2016-02-25 3 views
1

Я разрабатываю приложение для весеннего ботинка, которое защищено весной. Вот часть защищенной конфигурации:Весенняя безопасность и VAADIN

@Override 
    public void configure(HttpSecurity http) throws Exception { 
     // @formatter:off 
     http 
      // .csrf().ignoringAntMatchers("/dashboard") 
      // .and() 
      .httpBasic() 
      .and() 
       .headers().frameOptions().disable() 
      .and() 
       .antMatcher("/**").authorizeRequests() 
       .antMatchers("/VAADIN/**", "/PUSH/**", "/UIDL/**").permitAll() 
       .antMatchers("/vaadinServlet/UIDL/**").permitAll() 
       .antMatchers("/vaadinServlet/HEARTBEAT/**").permitAll() 
       .antMatchers("/actuator/health").permitAll() 
       .antMatchers("/actuator/**").hasAuthority(Authority.Type.ROLE_ADMIN.getName()) 
       .antMatchers("/", "/login**", "/index.html", "/home.html").permitAll() 
      .and() 
       .logout().logoutSuccessUrl("/").permitAll() 
      .and() 
       .csrf().csrfTokenRepository(csrfTokenRepository()) 
      .and() 
       .addFilterAfter(csrfHeaderFilter(), CsrfFilter.class) 
       .addFilterBefore(ssoFilter(), BasicAuthenticationFilter.class); 
     // @formatter:on 
    } 

Я собираюсь реализовать некоторые админ панель для управления мое приложение с помощью Vaadin. Я прочитал, что «Отключить CSRF-защиту в Spring или Vaadin. Если вы оба включены, ваше приложение не будет работать.».

В моем случае мне нужно отключить CSRF-защиту в Vaadin, но я не мог найти, как это сделать, используя конфигурацию Java.

На данный момент я получаю: https://127.0.0.1:8443/vaadinServlet/UIDL/?v-wsver=7.5.5&v-uiId=0 «Ошибка связи:. UIDL не может быть прочитан с сервера Check сервлеты отображения кода ошибки:. 403», во время навигации от главного представления к другим видам. (например:/dashboard #! myview). Это связано с тем, что метод дескриптора AccessDeniedHandlerImpl вызывается. Я пытаюсь это исправить с помощью следующих операторов, но это не помогает:

.antMatchers("/vaadinServlet/UIDL/**").permitAll() 
.antMatchers("/vaadinServlet/HEARTBEAT/**").permitAll() 

Так, пожалуйста, помогите мне решить это два вопроса:

  1. Отключить CSRF в Vaadin с помощью Java конфигурации.
  2. Решите проблему с видом навигации.

Благодаря

ответ

1

Для устранения вышеуказанных проблем, я решил разделить свой проект на два модуля. Во-первых, это приложение API, которое имеет собственную конфигурацию безопасности. Во-вторых, Dashboard, в которой Spring Security интегрирована с Vaadin4Spring на основе этого sample.

 Смежные вопросы

  • Нет связанных вопросов^_^