我自己的login页面
我自己的LoginController文件
@Controller
public class LoginController {
@RequestMapping({"/login","login","/login.html","/user/login"})
public String login(){
return "login";
}
}
原本的情况下应该是跳转到自己的登录页面的,但为了测试security自带的页面出现了一些问题
SpringSecurity自带的默认页面功能
http.formLogin() 即可开启默认登录页面,并且我发现优先度高于我在Controller里的自己的login。 但是加了.loginPage("/login")//用户未登录时,访问任何资源都转跳到该路径,即登录页面 这一行后发现自己的login页面优先度更高了,特此记录一下。
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeHttpRequests()
.antMatchers("/").permitAll()
.antMatchers("/index").hasRole("users")
.and()
.formLogin()
.and()
.logout().logoutSuccessUrl("/")
.and()
;
解决方案
为了解决security的登录成功后跳转到自己写的login里,可以.defaultSuccessUrl(“/index”),使他成功后直接跳到指定页面。
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeHttpRequests()
.antMatchers("/").permitAll()
.antMatchers("/index").hasRole("users")
.and()
.formLogin()
.defaultSuccessUrl("/index")
.and()
.logout().logoutSuccessUrl("/")
.and()
;
http.csrf().disable();
http.rememberMe();
}
|