1、Springsecurity案例1
     要求:
        Admin账户    所有请求都有权限访问
        Useradd账户  只能访问查询和添加订单
 
2、认证模式
     两种:
         httpBasic模式   客户端与服务器端做认证
         formLogin模式   表单登陆模式
 
3、编写步骤(这种编码方式在项目中不采用)
     第一步:编写配置类,继承WebSecurityConfigurerAdapter
     第二步:重写configure方法
       参数为HttpSecurtiy http:配置拦截请求资源
       参数为AuthenticationManagerBuilder auth:配 置认证用户信息和权限
     第三步:两种模式拦截请求         
http.authorizeRequests().antMatchers(“/“).
fullyAuthenticated().and().httpBasic();
 
http.authorizeRequests().antMatchers(“/“).
fullyAuthenticated().and().formLogin();
 
     第四步:httpBasic模式认证用户和权限     
auth.inMemoryAuthentication().withUser(“admin”).password(“1234
56”).authorities(“addOrder”);
       其中:
            authorities(“权限名称”)
    第五步:回复以前的模式
       因为Springsecurtiy5.0以上,密码是强制需要加密的。
       @Bean
        public static NoOpPasswordEncoder passwordEncoder() {
       return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
        }
    401:未授权  403:权限不足
 
4、完成案例1
(1)权限控制
       方法:给每一个请求路径分配一个权限名称,账号只要关联了该权限名
称,就有对应的权限
    (2)添加用户,给用户绑定权限
       
 
5、更改权限不足的页面
(1)编写一个配置类
       
(2)编写Controller,用来映射”/error/状态码”请求,跳转到相应页面
           
 
6、修改formLogin模式的默认登陆页面
(1)配置登录请求
         
(2)放行登录请求
         
  
(3)编写登录请求
           
 
    (4)登录失败后显示错误提示
           两种方法:
              1、认证判断是否认证成功,认证失败可跳转到错误页面
              2、登录失败后,url地址有error参数,在页面获取即可
          
 
7、判断用户是否登陆成功
       AuthenticationFailureHandler  认证失败接口
AuthenticationSuccessHandler  认证成功接口
(1)编写两个类,分别实现这两个接口
     (2)配置
           
 
8、RBAC权限控制
(1)导入三个实体类:用户,权限,角色
         
            
            
(2)导入两个Mapper类
         
         
(3)配置数据源信息
(4)实现UserDetailsService类,动态查询数据库验证用户密码
         
(5)对密码进行加密判断
(6)动态进行用户授权
1、根据用户名称查询用户所有的权限
     
2、对用户的权限属性进行赋值
     
3、动态配置关联权限名称与权限地址
        
 
 
 
          
