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

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

Почему он перенаправляет каждый запрос на страницу входа? Как отключить это?

Я попытался удалить все настройки безопасности.

@SpringBootApplication
public class SpringbootJwtExampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootJwtExampleApplication.class, args);
    }

}

public interface VehicleRepository extends JpaRepository<Vehicle, Long> {
}


@Data
@Entity
public class Vehicle {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
}


@RestController
@RequestMapping("/v1/vehicles")
public class VehicleController {

    @Autowired
    private VehicleRepository vehicleRepository;

    @GetMapping("")
    public ResponseEntity getAll(){
        return ok(vehicleRepository.findAll());
    }
}

Когда я запрашиваю http://локальный:8080/v1/транспортные средства его перенаправление на страницу входа. он должен запрашивать фактический запрос.

Удалить Spring Security? Единственным другим способом было бы правильно настроить его, а не загружать значения по умолчанию.

Boris the Spider 18.05.2019 08:31

@Vikas, возможно, вам придется удалить зависимость безопасности

Romil Patel 18.05.2019 08:32
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
955
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Согласно Документация по весенней безопасности, класс WebSecurityConfigurerAdapter предоставляет следующую конфигурацию по умолчанию:

protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .anyRequest().authenticated()
            .and()
        .formLogin()
            .and()
        .httpBasic();
}

Чтобы переопределить эти значения по умолчанию, напишите свой собственный WebSecurityConfig, например:

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // Your own rules
    }
}
  • Если вы хотите отключить временную защиту Spring, добавьте аннотацию @SpringBootApplication(exclude = {SecurityAutoConfiguration.class}) в основной класс Spring.

    @SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
    public class DemoApplication
    {
    public static void main(String[] args)
    {
        SpringApplication.run(DemoApplication.class, args);
    }
    }
    
  • Другим решением является переопределение конфигурации по умолчанию путем расширения сорт

    @Configuration
    @EnableWebSecurity
    public class BasicConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
      //customize the configs
    }
    }
    
  • Наконец, если вам не нужна безопасность в вашем проекте, удалите зависимость безопасности spring в файле pom.xml.

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