Spring Boot v2.0.4: Spring Security - настроить базовую аутентификацию только для конечных точек управления / привода - PullRequest
0 голосов
/ 13 сентября 2018

Мне интересно, есть ли способ настроить Spring Security для обеспечения базовой аутентификации только для порта управления.Я хочу ограничить доступ к конечным точкам привода, но все же не ограничить доступ к конечной точке обслуживания через базовую аутентификацию.Можно ли это сделать весной?

ОБНОВЛЕНИЕ:

Так что я понял это.Ниже помогли достичь того, что указано выше

package com.foo.bar;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.util.matcher.AndRequestMatcher;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;


@EnableWebSecurity
public class WebSecurityConfiguration {

    @Value("${server.port}")
    private static int serverPort;
    @Value("${management.server.port}")
    private static int managementPort;

    @Order(1)
    @Configuration
    public static class ServerSecurityConfiguration extends WebSecurityConfigurerAdapter {

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.antMatcher("/api/**").authorizeRequests()
            .requestMatchers(new AndRequestMatcher(httpServletRequest -> serverPort == httpServletRequest.getLocalPort(),
                new AntPathRequestMatcher("/foo/bar/api/**"))).permitAll().anyRequest().anonymous();
        }
    }

    @Configuration
    public static class ManagementSecurityConfiguration extends WebSecurityConfigurerAdapter {

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests()
            .requestMatchers(new AndRequestMatcher(httpServletRequest -> managementPort == httpServletRequest.getLocalPort(),
                new AntPathRequestMatcher("/actuator/**"))).authenticated().anyRequest().authenticated().and().httpBasic();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...