java - 面对 SpringBoot Security 模块登录错误
问题描述
我正在创建具有登录功能的 Spring Boot 基本应用程序。
我的登录功能不起作用并在调试日志下方生成。
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);
}
}
我错过了什么,还是犯了任何错误?
注意:- dao 和 model 不包括在内,因为它们不是登录过程的一部分。登录弹出窗口即将到来,但其授权使用r。
解决方案
你失踪了@Configuration
。您的配置类应注释如下。
@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter
{
...
}
推荐阅读
- c# - Unity3d - 相机旋转平滑“错误”
- c - 为什么数组不接受空终止符?
- javascript - 如何在 ng-repeat 中使用 select 并在 api 调用数据上保持选中的值
- javascript - 悬停时div闪烁
- php - Codeigniter 3 分页:将 $offset 变量添加到视图中
- php - yii2 两个活动表单需要第二次点击提交
- mysql - MySQL 连接不工作我得到错误
- python - SCons 无法在 Windows 7 上检测 Visual Studio Build 2017 工具
- elasticsearch - 在 Google Cloud Kubernetes 上运行 elasticsearch 以 CrashLoopBackOff 结束
- java - JAVA 不允许我创建 ActionListener 类