spring security 404标准表单登录后出错

6qfn3psc  于 2021-07-15  发布在  Java
关注(0)|答案(1)|浏览(450)

我的简单spring安全应用程序有问题。在我登录之后,404错误页将打开,而不是我的视图(greet.jsp只包含一个标题)。
在我看来,我的控制器不处理请求,但我不知道为什么。我以前在没有Spring Security 的情况下做过这件事,而且成功了。但是当我增加了安全性,它就不起作用了。
添加了依赖项:springwebmvc、springsecurity-wev/config、javaxservlet-api。
我的spring配置:

@Configuration
@ComponentScan("security.config")
@EnableWebMvc
public class SpringConfig implements WebMvcConfigurer {
    @Bean
    public ViewResolver viewResolver(){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}

我的安全配置:

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        User.UserBuilder userBuilder = User.withDefaultPasswordEncoder();

        auth.inMemoryAuthentication()
                .withUser(userBuilder.username("Matt").password("Matt").roles("Programmer"));
    }
}

Dispatchers服务初始化器:

public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return null;
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

安全初始值设定项:

public class SecurityInitializer
        extends AbstractSecurityWebApplicationInitializer {
}

控制器:

@Controller
public class MyController {

    @GetMapping("/")
    public String getInfoForAllStaff(){
        return "greet";
    }
}

jsp地址:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Greet</title>
</head>
<body>
        <h2>Hello!</h2>
</body>
</html>

在此之后,404错误页面

拜托,有人告诉我我做错了什么

v8wbuo2f

v8wbuo2f1#

因为我还不能添加评论,所以我不得不把它作为一个答案来写。我在处理Spring Security 时也遇到过类似的问题,这是因为 @ComponentScan 注解(这里详细解释),修复它解决了我的问题,也许它也会解决你的问题。

相关问题