Вход в систему / использование Api rest с базой Spring Security c Auth не работает - PullRequest
0 голосов
/ 12 февраля 2020

Я новичок в 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, но я не знаю, чего мне не хватает

1 Ответ

0 голосов
/ 12 февраля 2020

Пробовал ваш код в моем собственном проекте. Может показаться, что вы просто пропускаете аннотацию @Configuration на вашем WebSecurityConfigurerAdapter, поэтому выполняется конфигурация по умолчанию. Где имя user и зарегистрированный пароль в консоли будут работать.

Рабочий пример - https://github.com/DarrenForsythe/sof-60178305

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