Printemps de démarrage de Sécurité Désactiver la sécurité
Lorsque j'utilise de sécurité.de base.activé=false pour désactiver la sécurité sur un Ressort de Démarrage du projet 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 la suite Exception:
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 fixer cette exception, j'ai eu l'ajout de la propriété - de gestion.de sécurité.activé=false . Ma compréhension est que lorsque l'actionneur est dans le classpath, à la fois de sécurité.de base.activé=false et de gestion.de sécurité.activé=false doit être configuré pour désactiver la sécurité.
Quelqu'un pourrait s'il vous plaît laissez-moi savoir si ma compréhension est erronée?
- Pourquoi avez-vous besoin de sécurité sur votre classpath si vous voulez juste pour désactiver tout? De toute façon, votre trace de la pile est incomplète, donc il n'y a aucun moyen de savoir ce qui empêche l'application de démarrage. Je m'attends à ce qu'elle ne commence, mais l'actionneur d'extrémité doivent rester bloqué jusqu'à ce que vous avez explicitement à l'ouvrir.
- Je voudrais désactiver la sécurité temporairement et aussi mon code d'application se réfère à la sécurité des pots de travail.
- Vous n'avez toujours pas posté assez d'informations pour comprendre pourquoi l'application ne démarre pas. Plein de trace de pile serait un début.
- Une des raisons serait un microservice la gestion de printemps-sec-oauth2
ClientDetails
. Vous aurez un transitive importation de printemps-la sécurité, mais peut-être ne voulez pas l'authentification basique dans votre service.
Vous devez vous connecter pour publier un commentaire.
Également ce qui semble fonctionner est la création d'un fichier
application-dev.properties
qui contient:Si vous commencez alors votre Printemps de Démarrage de l'app avec la
dev
profil, vous n'avez pas besoin d'ouvrir une session.security.ignored=/**
ensuite travaillé. stackoverflow.com/a/36280413/3291867Dans le cas où vous avez spring-boot-actionneur dans votre package, vous devez ajouter le suivant
Avec les anciens Printemps-botte, la classe a été appelé
ManagementSecurityAutoConfiguration
.Dans des versions plus récentes cela a changé à
Si vous avez besoin de sécurité comme une dépendance, mais ne veulent pas le Printemps de Démarrage afin de le configurer pour vous, vous pouvez utiliser cette exclusion:
Pour le printemps boot 2 utilisateurs, il doit être
Étape 1: Commentaire de l'annotation @EnableWebSecurity dans la sécurité de votre config
Étape 2: Ajoutez à votre application.propriétés fichier.
Pour plus de détails, regardez ici: http://codelocation.com/how-to-turn-on-and-off-spring-security-in-spring-boot-application/
Afin d'éviter de sécurité, vous pouvez utiliser les annotations.
Utiliser cette annotation sur le dessus de configurer la classe:
Par exemple:
@EnableWebSecurity
désactiver la Sécurité sur le Web?Permettre l'accès à tout en utilisant antMatchers("/")
J'ai simplement ajouté
security.ignored=/**
dans leapplication.properties
,et qui a fait le charme.Ajouter les lignes ci-dessous dans votre application principale.
Supprimer org.activiti.spring.boot.SecurityAutoConfiguration.class si vous ne l'utilisez pas en or.
De même, enlever l'un pour l'actionneur si vous n'êtes pas à l'aide de spring-boot-actionneur.
Vous devez ajouter cette entrée application.propriétés de contourner Springboot de Sécurité par Défaut
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration
Alors il n'y aura pas de zone de l'authentification.
otrws, les informations d'identification sont les suivants:-
user
et99b962fa-1848-4201-ae67-580bdeae87e9
(mot de passe généré de façon aléatoire)Note: my springBootVersion = '1.5.14.RELEASE'
Vous pouvez configurer pour basculer de la sécurité printemps dans votre projet en suivant ci-dessous 2 étapes:
ÉTAPE 1:
Ajouter un
@ConditionalOnProperty
annotation sur le dessus de votre SecurityConfig classe. Reportez-vous ci-dessous:ÉTAPE 2:
Ajouter la configuration suivante pour votre
application.properties
ouapplication.yml
fichier.application.propriétés
OU
application.yml
J'ai ajouté ci-dessous les paramètres dans l'application.yml et a bien fonctionné.
cela peut être converti en
security.route-paterns-to-be-skipped=/**/*
pour l'application.propriétésAjouter classe suivante dans votre code
Et insie de l'application.propriétés ajouter