1

Я пытаюсь выполнить базовую проверку подлинности с помощью 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 с тем же результатом)

Спасибо.

ответ

0

Удалить http.httpBasic(); и попробуйте еще раз