Обнаружена ошибка входа в модуль безопасности SpringBoot - PullRequest
1 голос
/ 26 сентября 2019

Я создаю базовое приложение для весенней загрузки с функцией входа в систему.

Моя функция входа не работает и генерирует ниже журнал отладки.

2019-09-26 14:50:01.262 DEBUG 3720 --- [nio-8080-exec-4] o.s.b.w.f.OrderedRequestContextFilter    : Bound request context to thread: org.apache.catalina.connector.RequestFacade@6deb15fd
2019-09-26 14:50:01.277 DEBUG 3720 --- [nio-8080-exec-4] o.s.b.w.f.OrderedRequestContextFilter    : Cleared thread-bound request context: org.apache.catalina.connector.RequestFacade@6deb15fd

Ниже приведен код класса моего контроллера.

package com.sourabh.app.controller;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;    
import com.sourabh.app.repository.SpringJava4sDAO;
import com.sourabh.model.Customer;

@RestController
public class MainAppController {

    @Autowired
    public SpringJava4sDAO dao;

    @RequestMapping("/")
    public String welcome() {
        return "Welcome to Sring boot application";
    }

        @RequestMapping("/userlogin")
        public String userValidation() {
            return "User: Successfully logged in!";
        }

        @RequestMapping("/adminlogin")
        public String adminValidation() {
            return "Admin: Successfully logged in!";
        }
}

Ниже приведен мой код класса SpringSecurityConfig

package com.sourabh.app.configs;

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

public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {

    // Authentication : set user/password details and mention the role
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication().passwordEncoder(org.springframework.security.crypto.password.NoOpPasswordEncoder.getInstance())
            .withUser("user").password("pass").roles("USER")
            .and()
            .withUser("admin").password("pass").roles("USER", "ADMIN");
    }

    // Authorization : mention which role can access which URL
    protected void configure(HttpSecurity http) throws Exception {
        http.httpBasic().and().authorizeRequests()
            .antMatchers("/userlogin").hasRole("USER")
            .antMatchers("/adminlogin").hasRole("ADMIN")
            .and()
            .csrf().disable().headers().frameOptions().disable();
    }
}

Добавлена ​​зависимость pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

Код класса драйвера загрузки

package com.sourabh.app;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplication
public class MainApp extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(MainApp.class, args);

    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(MainApp.class);
    }
}

Я что-то пропустил или допустил ошибку?

Примечание: - Дао и модель не включены в вопрос, так как они не являются частью процесса входа в систему. Идет всплывающее окно входа в систему, но разрешено его использование r.

1 Ответ

1 голос
/ 26 сентября 2019

Вам не хватает @Configuration.Ваш класс конфигурации должен быть аннотирован, как указано ниже.

@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter
{
...
}

...