关于权限拦截的问题

来源:15-4 权限拦截功能开发-4

慕函数2082699

2018-07-24

问题:

1、是否一定要用Filter实现拦截,用interceptor实现可以吗?

2、为什么login和acl要分开来实现,现在一个filter或者interceptor里不行吗?


写回答

1回答

Jimin

2018-07-24

你好,从代码实现效果来说,filter和inteceptor都是可以的,只是通常我们可能会在一个项目里定义多个filter但基本只会定义一个interceptor,这时interceptor通常就不会做实际的业务逻辑,而只做一些常规的记录或兜底等操作,作为请求的收尾。但当项目里只有一个filter时,应该说用哪个就可以了。

login和acl分开,这个我感觉很容易理解的,一个类只做指定的事情,login只关注登录及登录的操作,acl只做针对登录用户的权限校验操作,当然堆到一个类里是可以的,但是分开的话逻辑会更清晰。之后再有其他逻辑时,也可以单独放到一个新的filter里,而不会出现不停的在一个类里写,导致逻辑越来越臃肿。

0
2
Jimin
回复
慕函数2082699
那也要有一个拦截所有操作的点,对于dubbo而言,依靠的dubbo里的filter,在invoke实际方法之前去检查权限。本质上都是有一个全局拦截点的存在,拦截住实际的调用,在调用前做权限的判断。这种拦截,类似于dubbo这种组件,提供的拦截方式基本也都是filter。不过这不是关键,能拦截住才是关键,至于选择使用什么拦截,根据项目实际情况就可以了。
2018-07-25
共2条回复

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2261 学习 · 1347 问题

查看课程