关于程序员:原生AOP的实现以及shior框架授权

58次阅读

共计 1945 个字符,预计需要花费 5 分钟才能阅读完成。

1 创立一个 SpringBoot 我的项目
2 在我的项目里定义一个接口,放在 com.cy.pj.mail.service 下
,写一个办法。
写一个实现类取继承接口,想要定义一个日志解决,想要以 AOP 的形式注入。

3 写一个测试类,要交给 spring 治理。

有输入后果为 hello cgb2006
4 接着不去写切面实现 AOP 的性能,至多得有告诉,和切入点。先新建一个注解,这个注解在运行无效,心愿注解刻画得办法为指标办法,有了注解,接下来还少一个告诉。
借助此注解形容一个切入点办法

在实现类得下面
5 写一个告诉得 class,取实现一个接口,这个接口里得办法有一个性能,会取执行指标办法。最先得告诉须要写到切面对象里去。MethodInterceptor 原先就是一个日志告诉对象,外面有 advice。

invocation 能够看成一个连接点对象,放在了指标办法信息,能够通过反射取得。

6 当初又了切入点和告诉,须要把对象放到 advice 外面去

这个 advisor 又叫参谋,它作用是通知 BeanProcessor,在这个切入点上,也就是(Pointcut)为指标对象创建对象,接下来就是写 Adcisor。Adcisor 必须满足一些要求,在 Browse 上继承


这个对象要交给 spring 治理,所以 @Component

method 封装了指标封装对象

这就是断定办法是不是切入点的一个入口
接着
以后的 springBoot 须要配置 DefauktAdvisorAutoProxyCreator

间接在启动类里进行
办法名
运行后果。

shiro 最外围的是 SecurityManager,留神包是哟啊 shiro 包

@Bean 是形容的办法为 spring 要治理的对象,办法名默认为 bean 的名称,@Conponent 是能形容类
1
项换办法名就 @Bean(”aaaa”)
2 配置过滤规定,例如对那些申请进行认证,那些申请能够间接放行。spring 容器在调用这个办法的时候,会按类型,为办法参数注入一个对象,相当于在办法上加了一个 @AuTowired,如果又多个对象,能够
linkedHashMap 是底层要求的

接下来写对 map 的要求

下一步写一个办法能够返回登入页面。
在配置 controller 下写返回页面就是解决所有页面申请的界面
还须要设置一下

除了动态资源,其余拜访都须要通过认证
建设一个需要当输出 doIndexUI 能够间接进入页面

间接加 map 外面

总结 三不走
1 先进行配置对象,对象须要进行申请受权
2 配置 ShiroFilerFactoryBean,负责创立过滤器工厂,由了过滤器,拿到申请,如果申请进行认证剖析就须要 DefaultWebSecurityManager,所以要把 DefaultSecurityManager 注入给 ShiroFilterFactoryBean,因为它会把对象的援用传给过滤器(filters),filters 就会掉用这个办法 DefaultSecurityManager 来进行认证剖析

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

大略步骤:1 是写在了 doLogin 办法外面,token 封装了信息,subject 传输。还有一个是关联 Realm 实现认证。
Realm 拿到两局部数据交给办法。次要写 controller,Realm,还有配置文件。
1 数据层基于用户名去找信息


3 写 Realm 继承 Aut 啥的,能够重写 set 和 get。
操作 1 数据层:

2 业务层,写一个 Realmclass

这个 realm 默认状况下有认证跟受权
1)留神这个是重写,所以返回值要符合要求


接下来比照个数据库里的。就是另一个重写

取配置类把 realm 写进去

别倒错包
去管制层写一个解决登入的办法,一个用户名,一个办法。要先去取 subject

之后去批改下配置类

能够测试了,个中央不对
下面局部补充。

user 未来传什么就取什么,已加密的明码就是从数据库取出来的
传什么值 = 由构造方法决定,逻辑上讲应该先写前面的


写 2 后加 p

由登入就有退出

把数据革除,并跳转回登入页面。
设置一个登入谬误的弹框,一个提醒,定义一个批准的异样办法。cv
由个注解 =@ControllerAdvice+@ResponseBody

受权删除权限!!!

由了切入点,还得由告诉
菜单页面看到得都是受权标识


给用户调配权限得过程
增加得时候
这个也有受权标识。



操作把这个标识符给

基于用户找菜单

去用户角色表

基于角色找菜单


基于菜单找受权标识


上面回到映射


上面业务层

正文完
 0