SpringBoot的授权与认证

Posted Coreqi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot的授权与认证相关的知识,希望对你有一定的参考价值。

(1)、添加starter依赖

1         <dependency>
2             <groupId>org.springframework.boot</groupId>
3             <artifactId>spring-boot-starter-security</artifactId>
4         </dependency>

 

(2)、使用配置类定义授权与定义规则

 1 package cn.coreqi.config;
 2 
 3 import org.springframework.context.annotation.Configuration;
 4 import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
 5 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 6 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
 7 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
 8 
 9 //@Configuration
10 @EnableWebSecurity
11 public class SecurityConfig extends WebSecurityConfigurerAdapter {
12 
13     //定义授权规则
14     @Override
15     protected void configure(HttpSecurity http) throws Exception {
16         //定制请求授权规则
17         http.authorizeRequests().antMatchers("/").permitAll()
18                 .antMatchers("/vip1/**").hasRole("VIP1")
19                 .antMatchers("/vip2/**").hasRole("VIP2")
20                 .antMatchers("/vip3/**").hasRole("VIP3");
21         //开启登陆功能(自动配置)
22         //如果没有登陆就会来到/login(自动生成)登陆页面
23         //如果登陆失败就会重定向到/login?error
24         //默认post形式的/login代表处理登陆
25         http.formLogin().loginPage("/userLogin");
26         //开启自动配置的注销功能
27         //访问/logout表示用户注销,清空session
28         //注销成功会返回/login?logout页面
29         //logoutSuccessUrl()设置注销成功后跳转的页面地址
30         http.logout().logoutSuccessUrl("/");
31         //开启记住我功能
32         //登陆成功以后,将cookie发给浏览器保存,以后访问页面带上这个cookie,只要通过检查就可以免登陆
33         //点击注销会删除cookie
34         http.rememberMe();
35     }
36 
37     //定义认证规则
38     @Override
39     protected void configure(AuthenticationManagerBuilder auth) throws Exception {
40         //jdbcAuthentication()  在JDBC中查找用户
41         //inMemoryAuthentication() 在内存中查找用户
42 
43         auth.inMemoryAuthentication().withUser("fanqi").password("admin").roles("VIP1","VIP2","VIP3")
44                 .and()
45                 .withUser("zhangsan").password("123456").roles("VIP1");
46     }
47 }

 

以上是关于SpringBoot的授权与认证的主要内容,如果未能解决你的问题,请参考以下文章

用户授权与认证springboot security

Shiro集成web环境[Springboot]-认证与授权

springboot整合shiro的认证与授权流程

SpringBoot日记——Spring的安全配置-登录认证与授权

使用Shiro实现认证和授权(基于SpringBoot)

springboot+spring security +oauth2.0 demo搭建(password模式)(认证授权端与资源服务端分离的形式)