zoukankan      html  css  js  c++  java
  • SpringSecurity 3.2入门(10)自定义权限控制认证及授权的过程

      上一章的代码实现还存在一些问题,如角色表、权限表的用处没有体现出来,但是已经能完成URL拦截功能,后面将会继续完善认证及授权的过程。

    认证及授权的过程如下:

    1、容器启动,MyInvocationSecurityMetadataSourceService类执行loadResourceDefine()方法,提取数据库中所有的资源,并将资源URL作为key,资源标识作为value,形成Map结构的数据。

    2、用户发送请求,若该请求未设置不拦截属性,则MySecurityFilter类执行doFilter()方法,拦截该请求。

    3、调用MyInvocationSecurityMetadataSourceService类的getAttributes(Object object)方法,获取访问该请求需要的权限(资源标识)。

    4、接着调用MyAccessDecisionManager类的decide()方法,验证用户是否拥有访问权限。有则通过,无则提示无权限访问该资源。若此时未登录,则跳转到登录页面。

    5、登录时,MyUsernamePasswordAuthenticationFilter类执行attemptAuthentication()方法,获得认证。

    6、登录成功后,调用MyUserDetailsService类的loadUserByUsername()方法获得一个Userdetail实体,该方法的作用的对用户进行授权。

    7、重复2、3、4步拦截访问请求。

  • 相关阅读:
    小学教师资格考试——综合素质——材料分析
    小学教师资格考试——综合素质——教师基本能力
    牛客网暑假训练第一场——J Different Integers(莫队算法 & 树状数组)
    牛客网暑假训练第二场——A run(递推&前缀和)
    CSU
    ZOJ
    CSU
    CSU
    HDU
    Hrbust-2090 背包(最小不可构造数)
  • 原文地址:https://www.cnblogs.com/hehaiyang/p/4287595.html
Copyright © 2011-2022 走看看