Java Spring Security中出现错误,状态代码为404
我在spring安全性/登录端点方面遇到了一些问题 我想有一个身份验证api,但 当我向Java Spring Security中出现错误,状态代码为404,java,spring,spring-boot,spring-security,configuration,Java,Spring,Spring Boot,Spring Security,Configuration,我在spring安全性/登录端点方面遇到了一些问题 我想有一个身份验证api,但 当我向 localhost:8080/login 这就是答案 { “时间戳”:“2020-11-12T17:00:32.691+00:00”, “状态”:404, “错误”:“未找到”, “电文”:“, “路径”:“/登录” } 这是我的配置类 @配置 @启用Web安全性 @EnableGlobalMethodSecurity(Prespenabled=true) 公共类应用程序WebSecurity配置扩展了
localhost:8080/login
这就是答案
{
“时间戳”:“2020-11-12T17:00:32.691+00:00”,
“状态”:404,
“错误”:“未找到”,
“电文”:“,
“路径”:“/登录”
}
这是我的配置类
@配置
@启用Web安全性
@EnableGlobalMethodSecurity(Prespenabled=true)
公共类应用程序WebSecurity配置扩展了WebSecurity配置适配器{
@自动连线
专用ApplicationUserService ApplicationUserService;
@凌驾
受保护的无效配置(HttpSecurity http)引发异常{
http
.csrf().disable()
.会议管理()
.sessionCreationPolicy(sessionCreationPolicy.STATELESS)
.及()
.授权请求()
.antMatchers(“/login”).permitAll()
.anyRequest().authenticated();
}
@凌驾
受保护的无效配置(AuthenticationManagerBuilder auth)引发异常{
auth.userDetailsService(applicationUserService).passwordEncoder(passwordEncoder());
}
@豆子
公共密码编码器PasswordEncoder(){
返回新的BCryptPasswordEncoder();
}
}
我以前也遇到过类似的问题,我通过在URL末尾添加“/”来解决它
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/login/").permitAll()
.anyRequest().authenticated();
}
请检查控制器是否输入了正确的路径。安全配置没有问题。将formlogin()添加到配置中:
http
.csrf().disable()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.anyRequest().authenticated()
.and().formLogin();
您不需要.antMatchers(“/login”).permitAll()
您的错误看起来根本没有登录端点。formLogin()负责它的生成。我找到了原因
我在使用这个依赖项
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
</dependency>
org.springframework.security
spring安全内核
对我来说是正确的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
org.springframework.boot
弹簧启动安全
那么问题一定是来自控制器如果是来自spring security,它将返回HTTP 401或403,但我认为登录端点是由spring security自动配置的,我没有任何控制器在tomcat单机版或嵌入式上运行?它是嵌入式的!但是SpringSecurity使用这个端点作为默认登录,我在这个项目中没有任何控制器