1.配置内容
protected void configure(HttpSecurity http) throws Exception {http.logout().logoutUrl("/logout").logoutSuccessUrl("/hello").permitAll();http.formLogin() //表单登录 .loginPage("/login.html") //登录页面 .loginProcessingUrl("/user/login") //登录访问路径,这个路径默认不需要认证.defaultSuccessUrl("/success.html").permitAll() //默认跳转路径, .and().authorizeRequests() .antMatchers("/hello").permitAll() //设置哪些路径可以直接访问 permitAll这个不加还报错 //.antMatchers("/needAuth").hasAuthority("auth") //.antMatchers("/needAuth").hasAnyAuthority("auth","auth2") //.antMatchers("/needRole").hasRole("admin") //.antMatchers("/needRole").hasAnyRole("admin","admin2") .anyRequest().authenticated() //剩下的请求都要认证.这个配置不加的话,所有路径都可以访问 .and().csrf().disable(); }
2.success.html内容
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> 登录成功 <a href="/logout">退出</a> </body> </html>
重要说明:
1)配置里面两个url(loginProcessingUrl(),logoutUrl()),在我这里对应的是 /user/login和 /logout 这两个接口在系统里是不需要创建的,可能框架自己帮我们创建了,并且在里面实现了真正的登录和登出操作
2)defaultSuccessUrl() 这个配置是这样的
-1)如果我们访问的是具体的资源,比如/myPoint接口,那么登录成功后直接访问具体接口
-2)如果我们访问的是登录页面,比如http://localhost:8001/login.html,那么登录成功后就访问它了