#java #spring-boot #spring-security #keycloak
#java #весенняя загрузка #spring-безопасность #keycloak
Вопрос:
У меня есть конечная точка, которая используется для аутентификации / входа в keycloak, поэтому я хотел бы сделать эту конечную точку открытой для всех. Итак, у меня есть URL-адрес, который должен быть доступен для всех: http://localhost:8080/auth
Я настроил HttpSecurity:
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.csrf().disable().headers().frameOptions().disable().and().authorizeRequests().antMatchers("/auth/**").permitAll();
}
У меня есть контроллер:
@RestController
public class AuthController {
@GetMapping(value = "/auth")
public String auth() {
return "Success !!!";
}
}
Но когда я пытаюсь отправить запрос GET:
{
"code": 0,
"type": "org.springframework.security.access.AccessDeniedException",
"title": "AccessDeniedException",
"detail": "Access is denied",
"status": 500
}
Keycloak хочет токен… Я хочу, чтобы этот URL-адрес не запрашивал его, чтобы отключить keycloak только для этой конечной точки и сохранить его для других.
Заранее спасибо.
Комментарии:
1. Нет. По-прежнему отказано в доступе.
2. Да, это так. Доступ запрещен.
3. Попробовал это так и не сработало: http.cors().and().csrf().disable().authorizeRequests().antMatchers(«/api/auth»).permitAll().and().httpBasic();