Я новичок в Spring Security, поэтому для изучения пурпура я создал API, используя spring-boot 2.0.3.RELEASE
и spring-boot-starter-security
.
Вот что я получил
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable().authorizeRequests().anyRequest().authenticated().and().httpBasic();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("admin").password(passwordEncoder().encode("admin")).roles("USER");
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
Класс контроллера
@RestController
@RequestMapping(value = "/security")
public class AppController {
@Autowired
SpringSecurityService service;
@GetMapping(value = "/{id}")
public Person findOne(@PathVariable("id") final int id) {
return service.findOne(id);
}
}
Когда я пытаюсь использовать метод get findOne
через какой-либо браузер, запрашивается форма входа в систему, поскольку все браузеры поддерживают basi c auth. Я пытаюсь войти, используя admin
в качестве пользователя и пароля, но отображается ошибка от неправильных учетных данных.
Я также пытался использовать метод через почтальона, отправляющего авторизацию, и $2a$10$c6MFPW.7MD7a.2V2rJYlXO0.YOLQEmsbu5GBmFsf.jShduBPenQ6O
в качестве значения.
Я получил значение для пароля здесь:
System.out.println(new BCryptPasswordEncoder().encode("admin"));
Я знаю, что это ошибка ладьи ie, но я не знаю, чего мне не хватает