Я пытаюсь выполнить базовую проверку подлинности с помощью Spring безопасности. Я также хочу сделать это через URL (имя пользователя: [email protected]). Заголовки авторизации установлены правильно, когда я делаю запрос HTTP, как это, и вот мой SecurityConfig:"401: Неверные учетные данные" Обычная проверка подлинности через URL в Spring Boot
12 @Configuration
13 @EnableGlobalMethodSecurity(prePostEnabled = true)
14 @EnableWebSecurity
15 public class SecurityConfig extends WebSecurityConfigurerAdapter {
16
17 @Override
18 protected void configure(HttpSecurity http) throws Exception {
19 http.authorizeRequests()
20 .antMatchers("/login").permitAll()
21 .antMatchers("/admin/**").hasRole("ADMIN")
22 .anyRequest().authenticated();
23 http.httpBasic();
24 http.csrf().disable();
25 }
26
27 @Autowired
28 public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
29 auth.inMemoryAuthentication()
30 .withUser("user").password("pwd1").roles("USER").and()
31 .withUser("admin").password("pwd2").roles("ADMIN", "USER");
32 }
33
34 }
А вот мой AdminController:
24 @PreAuthorize("hasRole('ADMIN')")
25 @RequestMapping(value="/admin")
26 @Controller
27 public class AdminController {
154 @RequestMapping(value="/", method=RequestMethod.GET)
155 public String admin(Model model) {
156 return Constants.ADMIN_TEMPLATE;
157 }
177 }
И когда я пытаюсь сделать запрос как :
admin:[email protected]:3000/admin
Получаю «401: Bad Credentials». Почему это происходит? (Я также попытался сделать запрос с заголовком авторизации через restclient с тем же результатом)
Спасибо.