Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Security中出现错误,状态代码为404_Java_Spring_Spring Boot_Spring Security_Configuration - Fatal编程技术网

Java Spring Security中出现错误,状态代码为404

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配置扩展了

我在spring安全性/登录端点方面遇到了一些问题 我想有一个身份验证api,但

当我向

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使用这个端点作为默认登录,我在这个项目中没有任何控制器