Конфигурация безопасности Spring SecurityFilterChain defaultSecurityFilterChain разрешить все проблемы

Если внутри @Bean SecurityFilterChain defaultSecurityFilterChain построить цепочку http с контроллером .requestMatchers("/auth/**").permitAll(); с сопоставлением «/ auth» нельзя вызвать из-за 403, но если я использую requestMatchers("/**").permitAll(), я могу перейти к этому адресу. Почему это так?

@Bean
SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception {
    http.cors().disable().csrf().disable()
            .authorizeHttpRequests()
            /*.requestMatchers("/myAccount").hasAuthority("VIEWACCOUNT")
            .requestMatchers("/myBalance").hasAnyAuthority("VIEWACCOUNT","VIEWBALANCE")
            .requestMatchers("/myLoans").hasAuthority("VIEWLOANS")
            .requestMatchers("/myCards").hasAuthority("VIEWCARDS")*/
            .requestMatchers("/auth/**").permitAll();


    return http.build();
}

@RestController("/аутентификация") открытый класс LoginController {

@Autowired
private CustomerRepository customerRepository;

@Autowired
private PasswordEncoder passwordEncoder;


@GetMapping
public String showUserString(@RequestBody User user) {
    return "Hello World!";
}`
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
115
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Реализуйте SecurityConfiguration следующим образом:

@Bean
public SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception {
    http
        // .csrf().disable not recommended in prod environment
        .csrf().disable()
        .authorizeHttpRequests((authz) -> authz
            .requestMatchers("/auth/**").permitAll()
            .anyRequest().authenticated()
        );

        return http.build();
}

Затем измените эту строку

@RestController("/auth")

к

@RestController
@RequestMapping("/auth")

и эта линия

@GetMapping

к

@RequestMapping(value = "/showUserString", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)

Другие вопросы по теме