请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 361|回复: 0

Spring Boot2.0连载(48)-- Spring Security入门

[复制链接]
发表于 2018-6-9 21:16:45 | 显示全部楼层 |阅读模式
更多Spring Boot2.0的知识敬请期待疯狂软件著作《Spring Boot企业应用实战》上市



Security适配器

在Spring Boot当中配置Spring Security非常简单,创建一个自定义类继承WebSecurityConfigurerAdapter,并在该类中使用@EnableWebSecurity注解,就可以通过重写config方法来配置所需要的安全配置。
WebSecurityConfigurerAdapter是Spring Security为Web应用提供的一个适配器,实现了WebSecurityConfigurer接口,提供了两个方法用于重写开发者需要的安全配置。
  1. protected void configure(HttpSecurity httpSecurity) throws Exception {
  2. }
  3. protected void configure(AuthenticationManagerBuilder auth) throws Exception {
  4. }
复制代码


configure(HttpSecurity httpSecurity)方法中可以通过HttpSecurity的authorizeRequests() 方法定义哪些URL需要被保护、哪些不需要被保护;通过 formLogin()方法定义当需要用户登录的时候,跳转到的登录页面。
configureGlobal(AuthenticationManagerBuilder auth) 方法用于创建用户和用户的角色。

用户认证
Spring Security是通过在configureGlobal(AuthenticationManagerBuilder auth) 完成用户认证的。使用AuthenticationManagerBuilder的inMemoryAuthentication()方法可以添加用户,并给用户指定权限。
  1. @Autowired
  2.     public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
  3.        auth.inMemoryAuthentication().withUser("fkit").password("123456").roles("USER");
  4.        auth.inMemoryAuthentication().withUser("admin").password("admin").roles("ADMIN","DBA");
  5.     }
复制代码


上面的代码中添加了两个用户,其中一个用户名是“fkit”,密码是“123456”,用户权限是“USER”;另一个用户名是“admin”,密码是“admin”,用户权限有两个,分别是“ADMIN”和“DBA”。需要注意的是,Spring Security保存用户权限的时候,会默认使用“ROLE_”,也就是说,“USER”实际是“ROLE_USER”, “ADMIN”实际是“ROLE_ADMIN”, “DBA”实际上是“ROLE_DBA”。
当然,也可以查询数据库获取用户和权限,常用的有JPA、MyBatis和JDBC操作,这些将在6之后节重点介绍。


您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2018-12-13 03:55 , Processed in 0.144586 second(s), 6 queries , File On.

快速回复 返回顶部 返回列表