本文介绍SpringBoot相关内容。和【跨考菌】一起加油吧~
如果你有收获,记得帮博主一键三连哦😊
1 概述
2 测试案例
2.1 引入安全pom模块
<!-- 引入安全模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2.2 相关页面说明
内容示例:
2.2 编写SpringSecurity的配置类
@EnableWebSecurity
public class MySecurityConfig extends WebSecurityConfigurerAdapter {
//定义认证规则(全局的)
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
//super.configure(auth);
auth.inMemoryAuthentication()
.withUser("zhangsan").password("123456").roles("VIP1","VIP2")
.and()
.withUser("lisi").password("123456").roles("VIP2","VIP3")
.and()
.withUser("wangwu").password("123456").roles("VIP1","VIP3");
}
}
说明
实现WebSecurityConfigurerAdapter
即可。
其中的configure
在内存中存储了用户的认证规则,也可以选择存储到jdbc中。auth.jdbcAuthentication()
即可。
下面编写授权规则:
@Override
protected void configure(HttpSecurity http) throws Exception {
//super.configure(http);
//定制请求的授权规则
http.authorizeRequests().antMatchers("/").permitAll()
.antMatchers("/level1/**").hasRole("VIP1") // level1下的所有请求
.antMatchers("/level2/**").hasRole("VIP2")
.antMatchers("/level3/**").hasRole("VIP3");
//http.formLogin() 开启自动配置的登陆功能,效果,如果没有登陆,没有权限就会来到登陆页面
http.formLogin();
//1、/login来到登陆页
//2、重定向到/login?error表示登陆失败
//3、更多详细规定
//4、默认post形式的 /login代表处理登陆
//5、一但定制loginPage;那么 loginPage的post请求就是登陆
//开启自动配置的注销功能。
http.logout().logoutSuccessUrl("/");//注销成功以后来到首页
//1、访问 /logout 表示用户注销,清空session
//2、注销成功会返回 /login?logout 页面;
//开启记住我功能
http.rememberMe().rememberMeParameter("remeber");
//登陆成功以后,将cookie发给浏览器保存,以后访问页面带上这个cookie,只要通过检查就可以免登录
//点击注销会删除cookie
}
http.formLogin()
:
- 即开启了自动配置的登录功能,效果就是,如果没有登录,会自动跳转到默认的登录页面;
- 重定向到/login?error表示登陆失败
- 可以自己定制登录页面,例如:
/**
* 登陆页
* @return
*/
@GetMapping("/userlogin")
public String loginPage() {
return "pages/"+"login";
}
此时,需要传递参数并配置loginPage
:
http.formLogin().usernameParameter("user").passwordParameter("pwd")
.loginPage("/userlogin");
http.logout()
:
http.logout().logoutSuccessUrl("/")
可以配置注销成功之后来到首页;- 访问
/logout
表示用户注销,清空session
- 注销成功会返回
/login?logout
页面;
http.rememberMe()
:
http.rememberMe().rememberMeParameter("remeber");
开启记住我功能,“remeber”为自己定制login.html页面的参数名。- 登陆成功以后,将cookie发给浏览器保存,以后访问页面带上这个cookie,只要通过检查就可以免登录
- 点击注销会删除cookie