Имя пользователя Spring Security пусто при авторизации с POST, но работает с PUT и GET - PullRequest
0 голосов
/ 03 апреля 2019

СЦЕНАРИЙ: Я реализовал Basic auth с пружинной безопасностью. Я сгенерировал форму входа в систему и http основной авторизации. Поэтому, когда я хочу отправить новые данные, которые представляют собой файл JSON в моем Requestbody, я работаю только с Put и GEt, но не с Post.

ОШИБКА: Когда я использую Post Method (я тестирую с почтальоном), имя пользователя в моем loadUserByUsername(String username) всегда пусто. Когда я делаю один и тот же вызов с Get или Put, имя пользователя является таким, каким оно должно быть.

Код:

Я не совсем уверен, какие части кода могут быть полезны, потому что кажется, что все происходит за кулисами. Поэтому я надеюсь, что SpringSecurityConfic может помочь

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.csrf().disable();
    http.authorizeRequests().antMatchers("/**").permitAll().anyRequest().authenticated().and().httpBasic().authenticationEntryPoint(entryPoint);
    http.addFilterAt(new CustomBasicAuthenticationFilter(authenticationManagerBean()), BasicAuthenticationFilter.class);
    http.formLogin().loginPage("/login").permitAll().failureUrl("/login").successHandler(new RoleBasedAuthenticationSuccessHandler());
    http.logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/login").invalidateHttpSession(true).deleteCookies("JSESSIONID").permitAll();
}

В моем файле SpringSecurotyConfiguration у меня есть http.csrf (). Disable (), но он все еще не работает.

Есть все, о чем я должен позаботиться, когда хочу использовать POST.

...