简体   繁体   中英

Spring Security 404 error after log in standard form

I have a problem with my simple Spring Security app. After I logged in, 404 error page opens instead of my view (greet.jsp which contains only one header).

It seems to me, my controller doesn't handle requests, but I dont know why. I've done this before without Spring Security and it worked. But when I added Security, it doesn't work anymore.

Added dependencies: Spring Web MVC, Spring Security Wev/Config, javax-servlet-api.

My Spring config:

@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;
    }
}

My Security config:

@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"));
    }
}

DispatcherServletInitializer:

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[]{"/"};
    }

SecurityInitializer:

public class SecurityInitializer
        extends AbstractSecurityWebApplicationInitializer {
}

Controller:

@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>

After this, 404 error page

登录页面

Please, someone tell me what I am doing wrong

Since i can't add comments yet I have to write it as an answer. I've had similar problem dealing with spring security, in my case it was because of @ComponentScan annotation (explained in details here ), fixing it solved my problem, perhaps it will also solve your.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM