我们正在尝试创建自定义登录页面。我们的配置方法如下所示
@Override
protected void configure(HttpSecurity http) throws Exception {
//http.csrf().disable().formLogin();UserDetailsService
http.csrf().disable().formLogin().loginPage("/login");
}
我们正在使用UserDetailsService类来存储用户数据。
@Autowired
private UserDetailsService userDetailsService;
我们在Web-Inf / views文件夹结构下创建了login.jsp。现在,如果尝试点击登录页面,我们会在控制台中收到如下错误。
“web.servlet.PageNotFound:1120 - 在名为'spring'的DispatcherServlet中找不到带有URI [/ login]的HTTP请求的映射”。
我是Spring框架的新手,任何人都可以帮我找到我错的地方。
下面我粘贴了完整的SecurityConfig类代码
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
@Bean(name = "authMgr")
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
//http.csrf().disable().formLogin();
http.csrf().disable().formLogin().loginPage("/login");
}
}
答案 0 :(得分:0)
可能对某些人有所帮助。问题是我说它应该搜索jsp文件的spring。在WebMvcConfigurerAdapter类中提供以下方法后,自定义登录工作正常。
@Bean
public InternalResourceViewResolver jspViewResolver() {
InternalResourceViewResolver jspViewResolver = new InternalResourceViewResolver();
jspViewResolver.setViewClass(org.springframework.web.servlet.view.JstlView.class);
jspViewResolver.setRedirectHttp10Compatible(false);
jspViewResolver.setPrefix("/WEB-INF/views/");
jspViewResolver.setSuffix(".jsp");
jspViewResolver.setOrder(2);
return jspViewResolver;
}