Я разрабатываю приложение для весеннего ботинка, которое защищено весной. Вот часть защищенной конфигурации:Весенняя безопасность и 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()
Так, пожалуйста, помогите мне решить это два вопроса:
- Отключить CSRF в Vaadin с помощью Java конфигурации.
- Решите проблему с видом навигации.
Благодаря