Quando eu uso security.basic.enabled = false para desativar a segurança em um projeto Spring Boot que tem as seguintes dependências:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
Vejo a seguinte exceção:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.actuate.autoconfigure.ManagementSecurityAutoConfiguration$ManagementWebSecurityConfigurerAdapter': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.setObjectPostProcessor(org.springframework.security.config.annotation.ObjectPostProcessor); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.security.config.annotation.ObjectPostProcessor] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
Para corrigir essa exceção, tive que adicionar a propriedade - management.security.enabled = false . Meu entendimento é que quando o atuador está no caminho de classe, security.basic.enabled = false e management.security.enabled = false devem ser definidos para desabilitar a segurança.
Alguém poderia me informar se meu entendimento estiver errado?
spring-security
spring-boot
usuário 3600073
fonte
fonte
ClientDetails
. Você terá uma importação transitiva de spring-security, mas talvez não queira autenticação básica em seu serviço.Respostas:
O que também parece funcionar bem é a criação de um arquivo
application-dev.properties
que contém:Se você iniciar o aplicativo Spring Boot com o
dev
perfil, não será necessário fazer logon.fonte
security.ignored=/**
então funcionou. stackoverflow.com/a/36280413/3291867No caso de você ter atuador de inicialização de mola em seu pacote, você deve adicionar o seguinte
Com o Spring-boot mais antigo, a classe foi chamada
ManagementSecurityAutoConfiguration
.Nas versões mais recentes, mudou para
fonte
Se você precisa de segurança como uma dependência, mas não quer que o Spring Boot a configure para você, você pode usar esta exclusão:
fonte
Para Spring Boot 2, as seguintes propriedades estão obsoletas na configuração application.yml
Para desativar a segurança para Sprint Boot 2 Basic + Actuator Security, as seguintes propriedades podem ser usadas no arquivo application.yml em vez de exclusão baseada em anotação (@EnableAutoConfiguration (exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class}))
Para application.properties, a sintaxe seria como
fonte
Para usuários da bota de mola 2, deve
fonte
@EnableWebSecurity
anotaçãoEtapa 1: anotação de comentário @EnableWebSecurity em sua configuração de segurança
Etapa 2: adicione isso ao seu arquivo application.properties .
Para obter mais detalhes, clique aqui: http://codelocation.com/how-to-turn-on-and-off-spring-security-in-spring-boot-application/
fonte
Se você estiver usando
@WebMvcTest
anotações em sua classe de testenão te ajuda.
Você pode desativar a segurança aqui
fonte
Adicione a seguinte classe em seu código
E dentro de application.properties add
fonte
A resposta é permitir todas as solicitações em WebSecurityConfigurerAdapter conforme abaixo.
você pode fazer isso em uma classe existente ou em uma nova classe.
Observação: se houver uma classe GlobalMethodSecurityConfiguration existente, você deve desativá-la.
fonte
Permitir acesso a tudo usando antMatchers ("/")
fonte
Eu simplesmente adicionei
security.ignored=/**
oapplication.properties
, e isso fez o encanto.fonte
Para evitar segurança, você pode usar anotações. Use esta anotação na parte superior da classe de configuração:
Por exemplo:
fonte
@EnableWebSecurity
desabilitar o Web Security?Você precisa adicionar esta entrada a application.properties para ignorar Springboot Default Security
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration
Então não haverá nenhuma caixa de autenticação. otrws, as credenciais são: -
user
e99b962fa-1848-4201-ae67-580bdeae87e9
(senha gerada aleatoriamente)Note: my springBootVersion = '1.5.14.RELEASE'
fonte
Você pode configurar para alternar a segurança da mola em seu projeto seguindo 2 etapas abaixo:
PASSO 1: adicione um
@ConditionalOnProperty
anotação no topo de sua classe SecurityConfig. Consulte abaixo:PASSO 2: Adicione a seguinte configuração ao seu arquivo
application.properties
ouapplication.yml
.application.properties
OU
application.yml
fonte
A única coisa que funcionou para mim:
e
Pode ser que a parte das propriedades seja redundante ou possa ser feita em código, mas não teve tempo de experimentar. Enfim, é temporário.
fonte
A maneira mais fácil de Spring Boot 2 sem dependências ou alterações de código é apenas:
fonte
Adicione as linhas abaixo ao seu aplicativo principal.
Remova org.activiti.spring.boot.SecurityAutoConfiguration.class se você não estiver usando o activiti.
Da mesma forma, remova o do atuador se não estiver usando o atuador de mola.
fonte
Como anteriormente, várias soluções mencionadas para desativar a segurança por meio de comentários de
anotação e outros é por meio de propriedades em application.properties ou yml. Mas essas propriedades estão se mostrando obsoletas na última versão do Spring Boot.
Portanto, gostaria de compartilhar outra abordagem para configurar o nome de usuário e a senha padrão em seu application-dev.properties ou application-dev.yml e usá-los para fazer o login no swagger e etc. no ambiente de desenvolvimento.
Portanto, essa abordagem também fornecerá algum tipo de segurança e você poderá compartilhar essas informações com sua equipe de desenvolvimento. Você também pode configurar funções de usuário, mas não é necessário no nível de desenvolvimento.
fonte
Eu adicionei as configurações abaixo em application.yml e funcionou bem.
isso pode ser convertido
security.route-paterns-to-be-skipped=/**/*
para application.propertiesfonte