Lorsque j'utilise security.basic.enabled = false pour désactiver la sécurité sur un projet Spring Boot qui a les dépendances suivantes:
<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>
Je vois l' exception suivante :
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: {}
Afin de corriger cette exception, j'ai dû ajouter la propriété - management.security.enabled = false . Je crois comprendre que lorsque l'actionneur est dans le chemin de classe, security.basic.enabled = false et management.security.enabled = false doivent être définis pour désactiver la sécurité.
Quelqu'un pourrait-il s'il vous plaît me faire savoir si ma compréhension est fausse?
spring-security
spring-boot
user3600073
la source
la source
ClientDetails
. Vous aurez une importation transitive de spring-security, mais peut-être que vous ne voulez pas d'auth de base dans votre service.Réponses:
Ce qui semble également fonctionner correctement, c'est la création d'un fichier
application-dev.properties
contenant:Si vous démarrez ensuite votre application Spring Boot avec le
dev
profil, vous n'avez pas besoin de vous connecter.la source
security.ignored=/**
puis travaillé. stackoverflow.com/a/36280413/3291867Si vous avez un actionneur à ressort dans votre emballage, vous devez ajouter ce qui suit
Avec l'ancien Spring-boot, la classe était appelée
ManagementSecurityAutoConfiguration
.Dans les versions plus récentes, cela est devenu
la source
Si vous avez besoin de la sécurité en tant que dépendance mais que vous ne voulez pas que Spring Boot la configure pour vous, vous pouvez utiliser cette exclusion:
la source
Pour les utilisateurs de Spring Boot 2, il doit être
la source
@EnableWebSecurity
annotationPour Spring Boot 2, les propriétés suivantes sont obsolètes dans la configuration application.yml
Pour désactiver la sécurité de Sprint Boot 2 Basic + Actuator Security, les propriétés suivantes peuvent être utilisées dans le fichier application.yml au lieu de l'exclusion basée sur les annotations (@EnableAutoConfiguration (exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class}))
Pour application.properties, la syntaxe serait comme
la source
Étape 1: commentez l'annotation @EnableWebSecurity dans votre configuration de sécurité
Étape 2: ajoutez-le à votre fichier application.properties .
Pour plus de détails, regardez ici: http://codelocation.com/how-to-turn-on-and-off-spring-security-in-spring-boot-application/
la source
Ajoutez la classe suivante dans votre code
Et à l'intérieur de l'application.properties ajouter
la source
Si vous utilisez une
@WebMvcTest
annotation dans votre classe de testne vous aide pas.
Vous pouvez désactiver la sécurité ici
la source
La réponse est d'autoriser toutes les demandes dans WebSecurityConfigurerAdapter comme ci-dessous.
vous pouvez le faire dans une classe existante ou dans une nouvelle classe.
Remarque: s'il existe une classe GlobalMethodSecurityConfiguration, vous devez la désactiver.
la source
Autoriser l'accès à tout à l'aide de antMatchers ("/")
la source
J'ai simplement ajouté
security.ignored=/**
dans leapplication.properties
, et cela a fait le charme.la source
Afin d'éviter la sécurité, vous pouvez utiliser des annotations. Utilisez cette annotation en plus de la classe configure:
Par exemple:
la source
@EnableWebSecurity
désactiver la sécurité Web?Vous devez ajouter cette entrée à application.properties pour contourner la sécurité par défaut de Springboot
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration
Ensuite, il n'y aura pas de boîte d'authentification. otrws, les informations d'identification sont: -
user
et99b962fa-1848-4201-ae67-580bdeae87e9
(mot de passe généré aléatoirement)Note: my springBootVersion = '1.5.14.RELEASE'
la source
Vous pouvez configurer pour activer la sécurité des ressorts dans votre projet en suivant les 2 étapes ci-dessous:
ÉTAPE 1: ajoutez une
@ConditionalOnProperty
annotation au-dessus de votre classe SecurityConfig. Référez-vous ci-dessous:ÉTAPE 2: Ajoutez la configuration suivante à votre fichier
application.properties
ouapplication.yml
.application.properties
OU
application.yml
la source
La seule chose qui a fonctionné pour moi:
et
Peut-être que la partie des propriétés est redondante ou peut être effectuée dans le code, mais n'a pas eu le temps d'expérimenter. Quoi qu'il en soit, c'est temporaire.
la source
Le moyen le plus simple pour Spring Boot 2 sans dépendances ni changements de code est simplement:
la source
Ajoutez les lignes ci-dessous à votre application principale.
Supprimez org.activiti.spring.boot.SecurityAutoConfiguration.class si vous n'utilisez pas activiti.
De même, retirez celui de l'actionneur si vous n'utilisez pas l'actionneur à ressort.
la source
Comme précédemment, plusieurs solutions mentionnées pour désactiver la sécurité en commentant
l'annotation et autres se font par le biais de propriétés dans application.properties ou yml. Mais ces propriétés apparaissent comme obsolètes dans la dernière version de Spring Boot.
Donc, je voudrais partager une autre approche pour configurer le nom d'utilisateur et le mot de passe par défaut dans votre application-dev.properties ou application-dev.yml et les utiliser pour vous connecter à swagger et etc. dans l'environnement de développement.
Ainsi, cette approche vous fournira également une sorte de sécurité et vous pourrez partager ces informations avec votre équipe de développement. Vous pouvez également configurer les rôles d'utilisateur, mais ce n'est pas obligatoire au niveau de développement.
la source
J'ai ajouté les paramètres ci-dessous dans application.yml et j'ai bien fonctionné.
cela peut être converti comme
security.route-paterns-to-be-skipped=/**/*
pour application.propertiesla source