Ketika saya menggunakan security.basic.enabled = false untuk menonaktifkan keamanan di proyek Spring Boot yang memiliki dependensi berikut:
<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>
Saya melihat Pengecualian berikut :
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: {}
Untuk memperbaiki pengecualian ini saya harus menambahkan properti - management.security.enabled = false . Pemahaman saya adalah bahwa ketika aktuator berada di classpath, baik security.basic.enabled = false dan management.security.enabled = false harus disetel untuk menonaktifkan keamanan.
Bisakah seseorang memberi tahu saya jika pemahaman saya salah?
spring-security
spring-boot
pengguna3600073
sumber
sumber
ClientDetails
. Anda akan memiliki impor keamanan pegas transitif tetapi mungkin tidak menginginkan autentikasi dasar dalam layanan Anda.Jawaban:
Yang juga tampaknya berfungsi dengan baik adalah membuat file
application-dev.properties
yang berisi:Jika Anda kemudian memulai aplikasi Spring Boot dengan
dev
profil tersebut, Anda tidak perlu masuk.sumber
security.ignored=/**
kemudian bekerja. stackoverflow.com/a/36280413/3291867Jika Anda memiliki aktuator pegas dalam paket Anda, Anda harus menambahkan yang berikut ini
Dengan sepatu bot musim semi yang lebih tua, kelas itu dipanggil
ManagementSecurityAutoConfiguration
.Di versi yang lebih baru ini telah berubah menjadi
sumber
Jika Anda memerlukan keamanan sebagai dependensi tetapi tidak ingin Spring Boot mengonfigurasinya untuk Anda, Anda dapat menggunakan pengecualian ini:
sumber
Untuk Spring Boot 2, properti berikut tidak digunakan lagi dalam konfigurasi application.yml
Untuk menonaktifkan keamanan untuk Sprint Boot 2 Basic + Actuator Security, properti berikut dapat digunakan dalam file application.yml sebagai ganti pengecualian berbasis anotasi (@EnableAutoConfiguration (exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class}))
Untuk sintaks application.properties akan seperti
sumber
Untuk pengguna boot musim semi 2 itu harus
sumber
@EnableWebSecurity
anotasi AndaLangkah 1: Beri komentar anotasi @EnableWebSecurity di konfigurasi keamanan Anda
Langkah 2: Tambahkan ini ke file application.properties Anda .
Untuk lebih jelasnya lihat di sini: http://codelocation.com/how-to-turn-on-and-off-spring-security-in-spring-boot-application/
sumber
Tambahkan kelas berikut ke dalam kode Anda
Dan insie dari application.properties menambahkan
sumber
Jika Anda menggunakan
@WebMvcTest
anotasi di kelas pengujian Andatidak membantu Anda.
Anda dapat menonaktifkan keamanan di sini
sumber
Jawabannya adalah mengizinkan semua permintaan di WebSecurityConfigurerAdapter seperti di bawah ini.
Anda dapat melakukan ini di kelas yang sudah ada atau di kelas baru.
Harap diperhatikan: Jika sudah ada kelas GlobalMethodSecurityConfiguration, Anda harus menonaktifkannya.
sumber
Izinkan akses ke semuanya menggunakan antMatchers ("/")
sumber
Saya hanya menambahkan
security.ignored=/**
dalamapplication.properties
, dan yang melakukan pesona.sumber
Untuk menghindari keamanan, Anda dapat menggunakan anotasi. Gunakan anotasi ini di atas kelas konfigurasi:
Sebagai contoh:
sumber
@EnableWebSecurity
menonaktifkan Keamanan Web?Anda perlu menambahkan entri ini ke application.properties untuk melewati Keamanan Default Springboot
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration
Maka tidak akan ada kotak otentikasi. otrws, kredensial adalah: -
user
dan99b962fa-1848-4201-ae67-580bdeae87e9
(kata sandi dibuat secara acak)Note: my springBootVersion = '1.5.14.RELEASE'
sumber
Anda dapat mengonfigurasi untuk beralih keamanan pegas dalam proyek Anda dengan mengikuti 2 langkah di bawah ini:
LANGKAH 1: Tambahkan
@ConditionalOnProperty
anotasi di atas kelas SecurityConfig Anda. Lihat di bawah ini:LANGKAH 2: Tambahkan konfigurasi berikut ke file
application.properties
atau Andaapplication.yml
.application.properties
ATAU
application.yml
sumber
Satu-satunya hal yang berhasil untuk saya:
dan
Bisa jadi bagian properti itu mubazir atau bisa dilakukan dalam kode, tapi tidak sempat bereksperimen. Pokoknya bersifat sementara.
sumber
Cara termudah untuk Spring Boot 2 tanpa ketergantungan atau perubahan kode adalah:
sumber
Tambahkan baris di bawah ini ke aplikasi utama Anda.
Hapus org.activiti.spring.boot.SecurityAutoConfiguration.class jika Anda tidak menggunakan activiti.
Demikian pula, hapus satu untuk aktuator jika Anda tidak menggunakan aktuator pegas.
sumber
Seperti yang disebutkan sebelumnya beberapa solusi untuk menonaktifkan keamanan melalui komentar
anotasi dan lainnya adalah melalui properti di application.properties atau yml. Tetapi properti tersebut ditampilkan sebagai tidak digunakan lagi dalam versi boot musim semi terbaru.
Jadi, saya ingin berbagi pendekatan lain untuk mengonfigurasi nama pengguna dan kata sandi default di application-dev.properties atau application-dev.yml Anda dan menggunakannya untuk masuk ke swagger dan lain-lain di lingkungan pengembangan.
Jadi, pendekatan ini juga akan memberi Anda semacam keamanan dan Anda dapat membagikan informasi ini dengan tim pengembangan Anda. Anda juga dapat mengonfigurasi peran pengguna, tetapi tidak diperlukan di tingkat pengembangan.
sumber
Saya menambahkan pengaturan di bawah ini di application.yml dan bekerja dengan baik.
ini dapat dikonversi
security.route-paterns-to-be-skipped=/**/*
untuk application.propertiessumber