Spring Security Есть ли способ перенаправить вызов API без пути? - PullRequest
0 голосов
/ 31 января 2020

В Spring Boot я создаю API, который требует аутентификации клиента OAuth для всех значимых конечных точек.

Если кто-то вызывает только URL (без пути), мы хотели бы перенаправить на корпоративный веб-сайт из приложения (сохранить все бизнес-логи c в приложении) вместо отображения неавторизованной страницы.

Я еще не нашел способ разрешить пустую строку для antMatchers, и в документах подразумевается, что пустая строка недопустима, поэтому игнорируется. У кого-нибудь есть идеи?

  @Override
  protected void configure(HttpSecurity http)
      throws Exception {
    //J-
      http
        .authorizeRequests()
          .antMatchers(
                  HttpMethod.GET,
                  "/v1/admin/livenessHeartbeat",
                  "/v1/admin/readinessHeartbeat",
                  "/v2/api-docs",
                  "/swagger-resources/**",
                  "/swagger-ui.html**",
                  "/webjars/**",
                  "favicon.ico",
                  "/") // No path just base URL which will redirect
              .permitAll()
          .antMatchers("/v1/*").hasRole(ACCESS_ROLE)
          .and()
        .oauth2ResourceServer()
          .accessDeniedHandler(new BearerTokenAccessDeniedHandler())
          .jwt()  
          .jwkSetUri(AUTH_PROVIDER.getMetadata()
            .toCompletableFuture()
            .get()
            .getJWKSetURI().toString())
          .jwtAuthenticationConverter(new SSOAuthExtractor(AUTH_PROVIDER));

1 Ответ

0 голосов
/ 04 февраля 2020

Глупый трюк разработчика # 3845 - Я указывал на неправильное тестирование среды в Postman. Да, "/" на самом деле работает. Спасибо за ваш отзыв, dur.

#FirstDumbThingIveEverDone Не.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...