При использовании spring secutiry в связке с spring web mvc НЕОБХОДИМО объявить фильтр CharacterEncodingFilter ДО конфигурации security - иначе ломается кодировка в запросах, русские буквы выглядят как кракозябры.
Решение в java config:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
Решение в java config:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
......
@Override
protected void configure(HttpSecurity http) throws Exception {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
filter.setForceEncoding(true);
http.addFilterBefore(filter,CsrfFilter.class);
http.authorizeRequests()
.antMatchers("/admin/**").access("hasRole('"+UserRole.ROLE_ADMIN+"')")
.and().formLogin().loginPage("/login").defaultSuccessUrl("/", false)
.and().logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout"));
.....
}
}
При этом в web.xml фильр описывать уже не требуется.
Комментариев нет:
Отправить комментарий