Добавить в корзинуПозвонить
Найти в Дзене
Java

🚀 Spring Boot tip: как быстро защитить REST endpoint

С Spring Boot + Spring Security можно буквально за пару строк закрыть нужные маршруты. Допустим, у нас есть контроллер: @RestController public class MyController { @GetMapping("/admin") public String admin() { return "Admin panel"; } } Теперь хотим, чтобы /admin был доступен только аутентифицированным пользователям. Добавляем конфигурацию безопасности: @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/admin").authenticated() .anyRequest().permitAll() .and() .httpBasic(); } } Разберём, что происходит: • authorizeRequests() - начинаем описывать правила доступа • antMatchers("/admin").authenticated() - для /admin требуется аутентификация • anyRequest().permitAll() - остальные маршруты публичные • httpBasic() - включаем HTTP Basic Auth В итоге: • /admin защищён • всё остальное - открыто • минимум кода, максимум контр

🚀 Spring Boot tip: как быстро защитить REST endpoint

С Spring Boot + Spring Security можно буквально за пару строк закрыть нужные маршруты.

Допустим, у нас есть контроллер:

@RestController

public class MyController {

@GetMapping("/admin")

public String admin() {

return "Admin panel";

}

}

Теперь хотим, чтобы /admin был доступен только аутентифицированным пользователям.

Добавляем конфигурацию безопасности:

@Configuration

@EnableWebSecurity

public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override

protected void configure(HttpSecurity http) throws Exception {

http

.authorizeRequests()

.antMatchers("/admin").authenticated()

.anyRequest().permitAll()

.and()

.httpBasic();

}

}

Разберём, что происходит:

• authorizeRequests() - начинаем описывать правила доступа

• antMatchers("/admin").authenticated() - для /admin требуется аутентификация

• anyRequest().permitAll() - остальные маршруты публичные

• httpBasic() - включаем HTTP Basic Auth

В итоге:

• /admin защищён

• всё остальное - открыто

• минимум кода, максимум контроля

Spring Security выглядит сложно, пока не начинаешь разбирать по шагам.

А дальше можно добавлять роли, JWT, OAuth2 и более гибкие политики доступа.