Wenn ich security.basic.enabled = false verwende , um die Sicherheit in einem Spring Boot-Projekt zu deaktivieren, das die folgenden Abhängigkeiten aufweist:
<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>
Ich sehe die folgende Ausnahme:
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: {}
Um diese Ausnahme zu beheben, musste ich die Eigenschaft - management.security.enabled = false hinzufügen . Mein Verständnis ist, dass, wenn sich der Aktor im Klassenpfad befindet, sowohl security.basic.enabled = false als auch management.security.enabled = false festgelegt werden sollten, um die Sicherheit zu deaktivieren.
Könnte jemand mich bitte wissen lassen, wenn mein Verständnis falsch ist?
spring-security
spring-boot
user3600073
quelle
quelle
ClientDetails
. Sie haben einen transitiven Import von Spring-Security, möchten aber möglicherweise keine grundlegende Authentifizierung in Ihrem Dienst.Antworten:
Was auch gut zu funktionieren scheint, ist das Erstellen einer Datei
application-dev.properties
, die Folgendes enthält:Wenn Sie dann Ihre Spring Boot-App mit dem
dev
Profil starten , müssen Sie sich nicht anmelden.quelle
security.ignored=/**
dann arbeitete. stackoverflow.com/a/36280413/3291867Wenn Sie einen Spring-Boot-Aktuator in Ihrem Paket haben, sollten Sie Folgendes hinzufügen
Mit älterem Spring-Boot wurde die Klasse aufgerufen
ManagementSecurityAutoConfiguration
.In neueren Versionen hat sich dies geändert
quelle
Wenn Sie Sicherheit als Abhängigkeit benötigen, Spring Boot diese jedoch nicht für Sie konfigurieren soll, können Sie diesen Ausschluss verwenden:
quelle
Für den Spring Boot 2 Benutzer muss es sein
quelle
@EnableWebSecurity
Anmerkung noch kommentierenFür Spring Boot 2 sind die folgenden Eigenschaften in der Konfiguration von application.yml veraltet
Um die Sicherheit für Sprint Boot 2 Basic + Actuator Security zu deaktivieren, können die folgenden Eigenschaften in der Datei application.yml anstelle des auf Anmerkungen basierenden Ausschlusses verwendet werden (@EnableAutoConfiguration (exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class}).
Für application.properties wäre die Syntax wie folgt
quelle
Schritt 1: Kommentieren Sie die Annotation @EnableWebSecurity in Ihrer Sicherheitskonfiguration
Schritt 2: Fügen Sie dies Ihrer Datei application.properties hinzu .
Weitere Informationen finden Sie hier: http://codelocation.com/how-to-turn-on-and-off-spring-security-in-spring-boot-application/
quelle
Fügen Sie Ihrem Code die folgende Klasse hinzu
Und insie von application.properties hinzufügen
quelle
Wenn Sie
@WebMvcTest
in Ihrer Testklasse Anmerkungen verwendenhilft dir nicht
Hier können Sie die Sicherheit deaktivieren
quelle
Die Antwort besteht darin, alle Anforderungen in WebSecurityConfigurerAdapter wie folgt zuzulassen.
Sie können dies in einer vorhandenen Klasse oder in einer neuen Klasse tun.
Bitte beachten Sie: Wenn eine GlobalMethodSecurityConfiguration-Klasse vorhanden ist, müssen Sie diese deaktivieren.
quelle
Erlaube den Zugriff auf alles mit antMatchers ("/")
quelle
Ich habe einfach hinzugefügt
security.ignored=/**
in derapplication.properties
, und das hat den Charme.quelle
Um Sicherheit zu vermeiden, können Sie Anmerkungen verwenden. Verwenden Sie diese Anmerkung zusätzlich zur Konfigurationsklasse:
Zum Beispiel:
quelle
@EnableWebSecurity
Web Security deaktiviert werden?Sie müssen diesen Eintrag zu application.properties hinzufügen , um die Springboot-Standardsicherheit zu umgehen
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration
Dann gibt es keine Authentifizierungsbox. otrws, Anmeldeinformationen sind: -
user
und99b962fa-1848-4201-ae67-580bdeae87e9
(Passwort zufällig generiert)Note: my springBootVersion = '1.5.14.RELEASE'
quelle
Sie können das Umschalten der Federsicherheit in Ihrem Projekt konfigurieren, indem Sie die folgenden 2 Schritte ausführen:
SCHRITT 1: Fügen Sie
@ConditionalOnProperty
Ihrer SecurityConfig-Klasse eine Anmerkung hinzu. Siehe unten:SCHRITT 2: Fügen Sie Ihrer
application.properties
oder Ihrerapplication.yml
Datei die folgende Konfiguration hinzu .application.properties
ODER
application.yml
quelle
Das einzige was bei mir funktioniert hat:
und
Könnte sein, dass der Eigenschaftenteil redundant ist oder im Code ausgeführt werden kann, aber keine Zeit zum Experimentieren hatte. Sowieso ist vorübergehend.
quelle
Der einfachste Weg für Spring Boot 2 ohne Abhängigkeiten oder Codeänderungen ist nur:
quelle
Fügen Sie die folgenden Zeilen zu Ihrer Haupt-App hinzu.
Entfernen Sie org.activiti.spring.boot.SecurityAutoConfiguration.class, wenn Sie activiti nicht verwenden.
Entfernen Sie in ähnlicher Weise die für den Aktuator, wenn Sie keinen Feder-Boot-Aktuator verwenden.
quelle
Wie bereits erwähnt, werden mehrere Lösungen erwähnt, um die Sicherheit durch Kommentieren von zu deaktivieren
Annotation und andere erfolgt über Eigenschaften in application.properties oder yml. Diese Eigenschaften werden jedoch in der neuesten Spring Boot-Version als veraltet angezeigt.
Daher möchte ich einen anderen Ansatz zum Konfigurieren des Standardbenutzernamens und -kennworts in Ihrer application-dev.properties oder application-dev.yml teilen und diese verwenden, um sich bei swagger und etc in der Entwicklungsumgebung anzumelden .
Dieser Ansatz bietet Ihnen also auch eine gewisse Sicherheit und Sie können diese Informationen mit Ihrem Entwicklungsteam teilen. Sie können auch Benutzerrollen konfigurieren, dies ist jedoch in der Entwicklungsstufe nicht erforderlich.
quelle
Ich habe die folgenden Einstellungen in application.yml hinzugefügt und gut funktioniert.
Dies kann wie
security.route-paterns-to-be-skipped=/**/*
für application.properties konvertiert werdenquelle