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)权限控制
    方法:给每一个请求路径分配一个权限名称,账号只要关联了该权限名
    称,就有对应的权限
    Spring security - 图1
    (2)添加用户,给用户绑定权限
    Spring security - 图2

    5、更改权限不足的页面
    (1)编写一个配置类
    Spring security - 图3
    (2)编写Controller,用来映射”/error/状态码”请求,跳转到相应页面
    Spring security - 图4

    6、修改formLogin模式的默认登陆页面
    (1)配置登录请求
    Spring security - 图5
    (2)放行登录请求
    Spring security - 图6
    (3)编写登录请求
    Spring security - 图7

    (4)登录失败后显示错误提示
    两种方法:
    1、认证判断是否认证成功,认证失败可跳转到错误页面
    2、登录失败后,url地址有error参数,在页面获取即可


    7、判断用户是否登陆成功
    AuthenticationFailureHandler 认证失败接口
    AuthenticationSuccessHandler 认证成功接口
    (1)编写两个类,分别实现这两个接口
    (2)配置
    Spring security - 图8

    8、RBAC权限控制
    (1)导入三个实体类:用户,权限,角色
    Spring security - 图9
    Spring security - 图10
    Spring security - 图11
    (2)导入两个Mapper类
    Spring security - 图12
    Spring security - 图13
    (3)配置数据源信息
    (4)实现UserDetailsService类,动态查询数据库验证用户密码
    Spring security - 图14
    (5)对密码进行加密判断
    Spring security - 图15(6)动态进行用户授权
    1、根据用户名称查询用户所有的权限
    Spring security - 图16
    2、对用户的权限属性进行赋值
    Spring security - 图17
    3、动态配置关联权限名称与权限地址
    Spring security - 图18