当我收到获取请求时,无法打开我的自定义登录页面。我配置了HttpSecurity,但是它显示的是“ login”的字符串而不是login.jsp。
我在application.properties中添加了以下代码,并在pom.xml文件中添加了jsp依赖关系。但是无论如何它都无法正常工作。
spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp
SecurityConfig.java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private DataSource dataSource;
@Bean
@ConfigurationProperties("spring.datasource")
public DataSource ds(){
return DataSourceBuilder.create().build();
}
@Override
protected void configure(HttpSecurity http) throws Exception{
http.authorizeRequests()
.antMatchers("/resources/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception{
auth.jdbcAuthentication().dataSource(dataSource)
.authoritiesByUsernameQuery("select username, role from myusers where username = ?")
.usersByUsernameQuery("select username, password, 1 as enabled from myusers where username = ?");
}
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/jsp/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
MainController.java
@RestController
public class MainController {
@GetMapping("/login")
public String login() {
return "login";
}
@RequestMapping("/list_users")
public String showUsers(){
return "This is the list of users";
}
@RequestMapping("addUser")
public String addUser(){
return "User is added successfully";
}
}
login.jsp
<h1><center>Give your login details</center></h1>
<form method="post" action="check_password">
User name:<input type="text" name="username"><br>
Password:<input type="password" name="password"><br>
Submit <input type="submit" value="Submit">
</form>
我要打开我的Custom login.jsp页面而不是String。欢迎任何建议!
答案 0 :(得分:0)
您可以了解@RestController的含义