怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习


1创建一个SpringBoot项目
2在项目里定义一个接口 , 放在com.cy.pj.mail.service下 , 写一个方法 。
【怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习】
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

写一个实现类取继承接口 , 想要定义一个日志处理 , 想要以AOP的方式注入 。
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

3写一个测试类 , 要交给spring管理 。
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

有输出结果为hello cgb2006
4接着不去写切面实现AOP的功能 , 至少得有通知 , 和切入点 。 先新建一个注解 , 这个注解在运行有效 , 希望注解描写得方法为目标方法 , 有了注解 , 接下来还少一个通知 。
借助此注解描述一个切入点方法
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

在实现类得上面
5写一个通知得class , 取实现一个接口 , 这个接口里得方法有一个功能 , 会取执行目标方法 。 最先得通知需要写到切面对象里去 。 MethodInterceptor原先就是一个日志通知对象 , 里面有advice 。
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图


invocation可以看成一个连接点对象 , 放在了目标方法信息 , 可以通过反射获得 。
6现在又了切入点和通知 , 需要把对象放到advice里面去
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

这个advisor又叫顾问 , 它作用是告诉BeanProcessor , 在这个切入点上 , 也就是(Pointcut)为目标对象创建对象 , 接下来就是写Adcisor 。 Adcisor必须满足一些要求 , 在Browse上继承
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

这个对象要交给spring管理 , 所以@Component
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

method封装了目标封装对象
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

这就是判定方法是不是切入点的一个入口
接着
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

当前的springBoot需要配置DefauktAdvisorAutoProxyCreator
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

直接在启动类里进行
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

方法名

怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

运行结果 。
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

shiro最核心的是SecurityManager , 注意包是哟啊shiro包
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

@Bean是描述的方法为spring要管理的对象 , 方法名默认为bean的名称 , @Conponent是能描述类1
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

项换方法名就@Bean("aaaa")
2配置过滤规则 , 例如对那些请求进行认证 , 那些请求可以直接放行 。 spring容器在调用这个方法的时候 , 会按类型 , 为方法参数注入一个对象 , 相当于在方法上加了一个@AuTowired , 如果又多个对象 , 可以
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

linkedHashMap是底层要求的
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

接下来写对map的要求
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

下一步写一个方法可以返回登入页面 。
在配置controller下写返回页面就是处理所有页面请求的界面
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图


还需要设置一下
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

除了静态资源 , 其他访问都需要通过认证
建立一个需求当输入doIndexUI可以直接进入页面
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

直接加map里面
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

1 先进行配置对象 , 对象需要进行请求授权
2 配置ShiroFilerFactoryBean , 负责创建过滤器工厂 , 由了过滤器 , 拿到请求 , 假如请求进行认证分析就需要DefaultWebSecurityManager , 所以要把DefaultSecurityManager注入给ShiroFilterFactoryBean , 因为它会把对象的引用传给过滤器(filters) , filters就会掉用这个方法DefaultSecurityManager来进行认证分析
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

认证分析请求流程
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

浏览器提供一个请求 , token是用来封装用户信息的 , Subject就是承载信息的车 , 提交给Secuirty manager , Secuirty manager还需要从数据库去信息 , 和提交信息进行比对 , 就在传递给Authenticator的时候 , 这里面有一个认证方法 , 数据库通过room??
认证信息和认证凡是不同 , 选择认证策略 。

怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

大概步骤:1是写在了doLogin方法里面 , token封装了信息 , subject传输 。 还有一个是关联Realm完成认证 。
Realm拿到两部分数据交给方法 。 主要写controller , Realm , 还有配置文件 。
1数据层基于用户名去找信息
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

3写Realm继承Aut啥的 , 可以重写set和get 。
操作1数据层:
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

2业务层 , 写一个Realmclass
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

这个realm默认情况下有认证跟授权
1)注意这个是重写 , 所以返回值要符合要求
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

接下来对比个数据库里的 。 就是另一个重写
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

取配置类把realm写进去
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

别倒错包

去控制层写一个处理登入的方法 , 一个用户名 , 一个方法 。 要先去取subject
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

之后去修改下配置类
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

可以测试了 , 个地方不对
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

上面部分补充 。
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

user将来传什么就取什么 , 已加密的密码就是从数据库取出来的
传什么值=由构造方法决定 , 逻辑上讲应该先写后面的
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

写2后加p
由登入就有退出
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

把数据清除 , 并跳转回登入页面 。
设置一个登入错误的弹框 , 一个提示 , 定义一个同意的异常方法 。 cv
由个注解=@ControllerAdvice+@ResponseBody
授权删除权限!!!
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

由了切入点 , 还得由通知
菜单页面看到得都是授权标识

怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

给用户分配权限得过程
添加得时候
这个也有授权标识 。
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

操作把这个标识符给
基于用户找菜单
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

去用户角色表
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

基于角色找菜单
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

基于菜单找授权标识
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

下面回到映射
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图
怅然|原生AOP的实现以及shior框架授权,图文并茂,收藏学习
本文插图

下面业务层


    推荐阅读