Создать RequestMapping с двумя конечными точками, как показано ниже.Клиенты, которые хотят использовать базовую аутентификацию, будут обслуживаться с использованием /secure/**
(без доступа без аутентификации) , а другие, которые собираются перейти на безопасную систему через несколько месяцев, будут обслуживаться с помощью /unsecure/**
(любой может получить доступ) .Вы можете использовать RequestMapping уровня класса, чтобы избежать изменений в каждой конечной точке на уровне метода
@GetMapping(value= {"/secure/users","/unsecure/users"})
public ResponseEntity<List<User>> findAllUsers()
{
...
}
. Теперь настройте безопасность, как показано ниже.для этого вам нужны клиентские роли, хранящиеся в БД
@Override
protected void configure(HttpSecurity http) throws Exception{
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/unsecure/**").permitAll()
.antMatchers("/secure/**").hasRole("CLIENT_SECURE")
.anyRequest().authenticated();
}
Пример работы с Git
Защищенная конечная точка: GET http://localhost:8088/secure/users
Статус 403
UnSecure endPoint: GET: http://localhost:8088/unsecure/users
Статус 200