স্প্রিং বুট সুরক্ষা সুরক্ষা অক্ষম করে


92

আমি যখন স্প্রিং বুট প্রকল্পের সুরক্ষা অক্ষম করতে সিকিউরিটি.ব্যাসিক.এনএবলড = মিথ্যা ব্যবহার করি যার নিম্নলিখিত নির্ভরতা রয়েছে:

    <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>

আমি নিম্নলিখিত ব্যতিক্রম দেখতে পাচ্ছি :

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: {}

এই ব্যতিক্রমটি স্থির করার জন্য আমাকে সম্পত্তি যুক্ত করতে হয়েছিল - পরিচালন.সিকিউরিটি.এনএবলড = মিথ্যা । আমার বোধগম্যতা হল যে যখন অ্যাক্টিউটার ক্লাসপথে থাকে তখন সিকিওরিটি অক্ষম করতে সিকিউরিটি.ব্যাসিক.এনএবলড = ভুয়া এবং ম্যানেজমেন্ট

আমার অনুধাবন ভুল হলে আমাকে দয়া করে কেউ বলতে পারেন?


4
আপনি যদি কেবল সমস্ত কিছু অক্ষম করতে চান তবে আপনার শ্রেণিপথের সুরক্ষা কেন দরকার? যাইহোক, আপনার স্ট্যাক ট্রেস অসম্পূর্ণ তাই অ্যাপটি শুরু হতে বাধা দিচ্ছিল তা জানার কোনও উপায় নেই। আমি আশা করব এটি শুরু হয়ে যাবে, তবে যতক্ষণ না আপনি স্পষ্টভাবে এগুলি খোলেন ততক্ষণ অ্যাকিউউটর শেষ পয়েন্টগুলি সুরক্ষিত থাকবে।
ডেভ সায়ার

@ ডেভাসায়ার আমি অস্থায়ীভাবে সুরক্ষা অক্ষম করতে চাই এবং আমার অ্যাপ্লিকেশন কোডটি সুরক্ষা জারগুলিকে কাজ করতে বোঝায়।
Stackee007

অ্যাপটি কেন শুরু হচ্ছে না তা দেখতে আপনি এখনও পর্যাপ্ত তথ্য পোস্ট করেননি। একটি সম্পূর্ণ স্ট্যাক ট্রেস একটি শুরু হবে।
ডেভ সায়ার 20:48

4
@ ডেভাসায়ারের একটি কারণ হ'ল একটি মাইক্রোসার্চিস হ'ল বসন্ত-সেকেন্ড-ওআউথ 2 পরিচালনা করে ClientDetails। আপনার কাছে বসন্ত-সুরক্ষার একটি ট্রানজিটিভ আমদানি থাকবে তবে সম্ভবত আপনার পরিষেবাদিতে প্রাথমিক লেখক চাইবেন না।
ডার্ক লাচোভস্কি

উত্তর:


79

application-dev.propertiesযেটি সূক্ষ্মভাবে কাজ করে বলে মনে হচ্ছে তা এমন একটি ফাইল তৈরি করা যা এতে রয়েছে:

security.basic.enabled=false
management.security.enabled=false

তারপরে যদি আপনি আপনার স্প্রিং বুট অ্যাপ্লিকেশনটি devপ্রোফাইল দিয়ে শুরু করেন তবে আপনাকে লগ ইন করার দরকার নেই।


4
security.basic.enabled = মিথ্যা প্রয়োজন নেই যদি আপনার সাথে management.security.enabled = মিথ্যা নিষ্ক্রিয় নিরাপত্তা
hennr

আমিও security.ignored=/**কাজ করেছি যোগ । stackoverflow.com/a/36280413/3291867
mojtab23

10
এটি এখন অবমূল্যায়ন!
agগল_ইয়ে

6
প্রকৃতপক্ষে. দেখুন spring.io/blog/2017/09/15/... থামিয়ে দেওয়া যে স্প্রিং বুট ঘটেছে 2 আরো তথ্যের জন্য
Wim Deblauwe

72

আপনার প্যাকেজে যদি বসন্ত-বুট-অ্যাকুয়েটর থাকে তবে আপনার নিম্নলিখিতটি যুক্ত করা উচিত

@EnableAutoConfiguration(exclude = {
        org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class,
        org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration.class})

পুরানো স্প্রিং-বুটের সাথে, ক্লাসটি ডাকা হয়েছিল ManagementSecurityAutoConfiguration

নতুন সংস্করণে এটিতে পরিবর্তিত হয়েছে

@SpringBootApplication(exclude = {
        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
        org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class}
        )

39

যদি আপনার নির্ভরতা হিসাবে সুরক্ষা প্রয়োজন তবে আপনার জন্য স্প্রিং বুট এটি কনফিগার করতে না চান তবে আপনি এই বর্জনটি ব্যবহার করতে পারেন:

    @EnableAutoConfiguration(exclude = { 
        org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class 
    })

21

বসন্ত বুট 2 ব্যবহারকারীদের এটি হতে হবে

@EnableAutoConfiguration(exclude = {
    org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
})

4
বসন্ত বুট ২.০
তে

আপনি এখনও আপনার @EnableWebSecurityটীকা মন্তব্য করতে হতে পারে
ভিক্টর পেটিট

21

জন্য স্প্রিং বুট 2 নিম্নলিখিত বৈশিষ্ট্য উঠিয়ে হয় application.yml কনফিগারেশন

  security.basic.enabled: false
  management.security.enabled: false

স্প্রিন্ট বুট 2 বেসিক + অ্যাকুয়েটারের সুরক্ষা অক্ষম করতে নীচের বৈশিষ্ট্যগুলি টিকাদান ভিত্তিক বর্জনের পরিবর্তে অ্যাপ্লিকেশন.আইএমএল ফাইলে ব্যবহার করা যেতে পারে (@EnableAutoConfigration (বাদ = = {সিকিউরিটিআউটস কনফিগারেশন.ক্লাস, ম্যানেজমেন্ট ওয়েবেসিকিউরিটিআউটস কনফিগারেশন.ক্লাস lass))

  spring:
    autoconfigure:
      exclude[0]: org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
      exclude[1]: org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration

জন্য application.properties সিনট্যাক্স মত হবে

spring.autoconfigure.exclude[0]=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration

11

পদক্ষেপ 1: মন্তব্য টিকাটি আপনার সিকিউরিটি কনফিগারেশনে @ সক্ষম ওয়েব ওয়েবসাইট সুরক্ষা

//@EnableWebSecurity

পদক্ষেপ 2: এটি আপনার অ্যাপ্লিকেশন.প্রপার্টি ফাইলগুলিতে যুক্ত করুন।

security.ignored=/**
spring.security.enabled=false
management.security.enabled=false
security.basic.enabled=false

আরও তথ্যের জন্য এখানে দেখুন: http://codelocation.com/how-to-turn-on-and-off-spring-security-in-spring-boot-application/


5

আপনার কোডে নিম্নলিখিত ক্লাস যুক্ত করুন

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

/**
 * @author vaquar khan
 */
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests().antMatchers("/**").permitAll().anyRequest().authenticated().and().csrf().disable();
    }

}

এবং অ্যাপ্লিকেশন.প্রপ্রেটিস অ্যাড যুক্ত করা হয়

security.ignored=/**
security.basic.enabled=false
management.security.enabled=false

5

আপনি যদি @WebMvcTestপরীক্ষার ক্লাসে টীকাটি ব্যবহার করেন

@EnableAutoConfiguration(exclude = { SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class })
@TestPropertySource(properties = {"spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration"})

আপনাকে সাহায্য করে না

আপনি এখানে সুরক্ষা অক্ষম করতে পারেন

@WebMvcTest(secure = false)

4

উত্তরটি নীচের মতো ওয়েবসিকিউরিটি কনফিগুরির অ্যাডাপ্টারে সমস্ত অনুরোধের অনুমতি দেওয়া।

আপনি বিদ্যমান ক্লাসে বা নতুন ক্লাসে এটি করতে পারেন।

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().permitAll();
    }

দয়া করে নোট করুন: থের যদি বিদ্যমান গ্লোবালমেথডসিকিউরিটি কনফিগারেশন ক্লাস থাকে তবে আপনাকে অবশ্যই এটি অক্ষম করতে হবে।


কাজ হয়নি। তবে এটি আমার জন্য কাজ করেছে স্ট্যাকওভারফ্লো.com
রবি এমসিএ

হাই রবি, আপনার সমাধান অনুসারে, "http.csrf.disable ()" হিসাবে উত্পাদনে সিএসআরএফ অক্ষম করার প্রস্তাব দেওয়া হয় না। আপনি কি পোস্ট, ইত্যাদি কলের জন্য সিএসআরএফ ইস্যু পেয়েছেন?
ইউ_আর_উভেন ইউআর_উইভিন

3

অ্যান্টম্যাচার্স ("/") ব্যবহার করে প্রত্যেকটিতে অ্যাক্সেসের অনুমতি দিন

     protected void configure(HttpSecurity http) throws Exception {
            System.out.println("configure");
                    http.csrf().disable();
                    http.authorizeRequests().antMatchers("/").permitAll();
        }

3

আমি কেবল যোগ security.ignored=/**মধ্যে application.properties, এবং যে কবজ করেনি।


সুতরাং এর অর্থ হ'ল স্বয়ংক্রিয় সুরক্ষা ব্যবস্থা এখনও রয়েছে তবে কেবল সমস্ত পথকেই উপেক্ষা করছে। প্রয়োজনীয় জিনিসগুলি রাখার জন্য আমি স্বাচ্ছন্দ্যবোধ করব না
পরমবীর সিং করওয়াল

2

সুরক্ষা এড়ানোর জন্য আপনি টিকা ব্যবহার করতে পারেন। কনফিগার শ্রেণীর উপরে এই টিকাটি ব্যবহার করুন:

@EnableWebSecurity

উদাহরণ স্বরূপ:

@EnableWebSecurity
@Configuration
public class AuthFilter{
   // configured method 
}

15
@EnableWebSecurityওয়েব সুরক্ষা কেন অক্ষম করা উচিত ?
লিল্লিনাক্স

2

স্প্রিংবুট ডিফল্ট সুরক্ষা বাইপাস করার জন্য আপনাকে এই এন্ট্রিটি অ্যাপ্লিকেশন.প্রেটিসে যুক্ত করতে হবে

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration

তারপরে কোনও প্রমাণীকরণ বাক্স থাকবে না। ওট্রু, শংসাপত্রগুলি হ'ল: - userএবং 99b962fa-1848-4201-ae67-580bdeae87e9 (এলোমেলোভাবে পাসওয়ার্ড তৈরি করা)

Note: my springBootVersion = '1.5.14.RELEASE'


এটি ছাড়া, security.basic.enabled = মিথ্যা পরিচালন.সিকিউরিটি.অন্যাবিলড = মিথ্যা সুরক্ষা.আইনোর্ডড = / ** এটাই কি যথেষ্ট স্বাভাবিক নয়?
বিলিগাহান

2

আপনি নীচে ২ টি পদক্ষেপ অনুসরণ করে আপনার প্রকল্পে বসন্ত সুরক্ষা টগল করতে কনফিগার করতে পারেন :

পদক্ষেপ 1:@ConditionalOnProperty আপনার সিকিউরিটি কনফিগ ক্লাসের শীর্ষে একটি টিকা যুক্ত করুন। নীচে উল্লেখ করুন:

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity (prePostEnabled = true)
@ConditionalOnProperty (name = "myproject.security.enabled", havingValue = "true", matchIfMissing = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
   // your security config
}

পদক্ষেপ 2: আপনার application.propertiesবা application.ymlফাইলে নিম্নলিখিত কনফিগারেশন যুক্ত করুন।

application.properties

security.ignored=/**
myproject.security.enabled=false

বা

application.yml

security:
  ignored: /**

myproject:
  security:
    enabled: false

1

আমার পক্ষে কাজ করা একমাত্র জিনিস:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable().authorizeRequests().anyRequest().permitAll();
    }

এবং

security.ignored=/**

বৈশিষ্ট্য অংশটি নিরর্থক হতে পারে বা কোডে করা যেতে পারে, তবে পরীক্ষার জন্য সময় ছিল না। যাইহোক সাময়িক।


1

নির্ভরতা বা কোড পরিবর্তন ছাড়াই স্প্রিং বুট 2 এর সহজতম উপায় হ'ল:

spring:
  autoconfigure:
    exclude: org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration

4
এটি স্প্রিং বুট v2.2.2. এর সাথে কাজ করছে না RE RRELEASE
প্র_এ

0

আপনার মূল অ্যাপটিতে নীচের লাইনগুলি যুক্ত করুন

আপনি অ্যাক্টিভিটি ব্যবহার না করে থাকলে org.એक्टিটি.স্প্রিং.বूट.সিকিউরিটিআউটো কনফিগারেশন.ক্লাস সরান।

একইভাবে, যদি আপনি স্প্রিং-বুট-অ্যাক্টিভেটর ব্যবহার না করেন তবে অ্যাক্টুয়েটারের জন্য একটিটি সরান।

@EnableAutoConfiguration(exclude = {
org.activiti.spring.boot.SecurityAutoConfiguration.class,
org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration.class,
org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class })

0

হিসাবে পূর্বে একাধিক সমাধান মন্তব্য করার মাধ্যমে সুরক্ষা অক্ষম উল্লেখ করা

নিবন্ধন করুন

টীকা এবং অন্যান্য হ'ল অ্যাপ্লিকেশন.প্রপার্টি বা yML- এ থাকা বৈশিষ্ট্যগুলির মাধ্যমে। তবে সেই বৈশিষ্ট্যগুলি সর্বশেষতম বসন্ত বুট সংস্করণে অবচিত হিসাবে প্রদর্শিত হচ্ছে।

সুতরাং, আমি আপনার অ্যাপ্লিকেশন- dev.properties বা অ্যাপ্লিকেশন-ডেভ.আইএমএলে ডিফল্ট ব্যবহারকারীর নাম এবং পাসওয়ার্ড কনফিগার করতে এবং সেগুলি ডেভলপমেন্ট পরিবেশে লগইন করতে ইত্যাদি ব্যবহার করতে চাই।

spring.security.user.name=admin
spring.security.user.password=admin

সুতরাং, এই পদ্ধতির আপনাকে কিছুটা সুরক্ষাও সরবরাহ করবে এবং আপনি এই তথ্যটি আপনার উন্নয়ন দলের সাথে ভাগ করতে পারেন। আপনি ব্যবহারকারীর ভূমিকাগুলিও কনফিগার করতে পারেন তবে এটি উন্নয়ন স্তরে প্রয়োজন হয় না।


-3

আমি প্রয়োগের নীচে সেটিংস যোগ করেছি ym

security:
    route-patterns-to-be-skipped:
      - /**/*

এটি security.route-paterns-to-be-skipped=/**/*প্রয়োগ করা যায় p


4
এই সম্পত্তি মোটেই বিদ্যমান নেই।
ছকড়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.