Доступ к защищенному ресурсу с помощью весеннего ресурса - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь интегрировать Spring Security в свое приложение и по какой-то причине (неизвестно мне) я продолжаю получать ошибку 403 при каждом запросе.Я убежден, что это как-то связано с весенней безопасностью.Ниже приведен фрагмент моего кода для получения более подробной информации.

Это моя первая попытка интеграции Spring Security в мое приложение, чтобы я мог что-то упустить.

У меня есть это в моем классе WebSecurity

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
private UserService userService;

@Autowired
private PasswordEncoder passwordEncoder;

@Autowired
private JwtTokenProvider jwtTokenProvider;

@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
    return super.authenticationManagerBean();
}

@Bean
public PasswordEncoder passwordEncoder(){
    return new BCryptPasswordEncoder();
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .httpBasic().disable()
            .csrf().disable()
            .cors().disable()
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and()
            .authorizeRequests()
            .antMatchers( HttpMethod.POST, "/auth/**").permitAll()
            .anyRequest().authenticated()
            .and()
            .apply(new JwtConfigurer(jwtTokenProvider));
}

@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.userDetailsService(userService).passwordEncoder(passwordEncoder());
}

И в моем контроллере у меня есть это

@RestController
@RequestMapping("/auth")
public class LoginController {
@Autowired
private UserService userService;

@RequestMapping(value = "/register", method = RequestMethod.POST, produces = "application/json", consumes = "application/json")
@ResponseBody
public Response<UserDto> register(@RequestBody Request<UserDto> request){
    MessengerUser user = userService.saveUser(request.getData());
    return new Response<>(new ModelMapper().map(user, UserDto.class));
}

@RequestMapping(value = "/sign-in", method = RequestMethod.POST, produces = "application/json", consumes = "application/json")
@ResponseBody
public Response<LoginDto> signin(@RequestBody Request<UserDto> request) {
    LoginDto loginDto = userService.authenticateUser(request.getData());
    return new Response<>(loginDto);
   }
}

С моим запросом {"data": {"username": "имя пользователя", "пароль": "пароль"}}

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

1 Ответ

0 голосов
/ 21 февраля 2019

Как оказалось, это была моя ошибка.У меня был неправильный тип запроса, глупая ошибка с моей стороны.

Все было правильно, но тип запроса был GET вместо POST

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...