
shiro
ljz2016
这个作者很懒,什么都没留下…
展开
-
一图讲解shiro流程
shiro执行流程:原创 2018-06-29 10:57:04 · 2551 阅读 · 0 评论 -
shiro框架源码解析与改造(九)---FormAuthenticationFilter
FormAuthenticationFilter是登陆已经认证的关键过滤器。父类是AuthenticationFilter 由onPreHandle方法为起点,先判断当前用户是否已经登陆,然后当前账号是否是当前用户最后登陆的,如果不是,则拒绝,onAccessDenied,重定向到登陆界面 auth认证, protected boolean onPreHandle(ServletRe...原创 2018-08-10 15:56:57 · 1346 阅读 · 0 评论 -
shiro框架源码解析与改造(八)---PermissionsAuthorizationFilter
PermissionsAuthorizationFilter是权限验证的关键过滤器。@Override protected boolean onPreHandle(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception { return this.i...原创 2018-08-10 15:38:29 · 2505 阅读 · 0 评论 -
shiro框架源码解析与改造(七)---session与cookie创建及相关
session与cookie创建,是在第一次进入shiro域时,访问jsp页面之前。 此时调用了getSession方法。 public HttpSession getSession(){ return getSession(true); } public HttpSession getSession(boolean create) { Htt...原创 2018-08-10 15:12:07 · 2340 阅读 · 0 评论 -
shiro自定义版--关于ajax请求无权限路径的处理
对于同步请求,在用户没有权限时,shiro会把用户重定向到指定页面,但是ajax请求,这个就不好用了,ajax请求每次获取的可能是页面,也可能是数据。针对这种情况,做了以下处理: if (httpRequest.getHeader("X-Requested-With") == null || !httpRequest.getHeader("X-Requested-With").equal...原创 2018-08-01 14:54:50 · 1346 阅读 · 0 评论 -
shiro框架源码解析与改造(六)---Subject创建
在AbstractShiroFilter中创建subjectprotected WebSubject createSubject(ServletRequest request, ServletResponse response) { return (new WebSubject.Builder(this.getSecurityManager(), request, respon...原创 2018-07-26 11:00:15 · 442 阅读 · 0 评论 -
shiro框架源码解析与改造(五)---SpringShiroFilter
这个类继承AbstractShiroFilter ,我在这里对notFilter字段做了实现,在shiro域中划了一块方外之地,减少了Subject的创建。private static final class SpringShiroFilter extends AbstractShiroFilter { private Set<String> notFilters=...原创 2018-07-26 10:06:11 · 814 阅读 · 0 评论 -
shiro框架源码解析与改造(四)---PathMatchingFilterChainResolver
这个类有两个成员变量 private PatternMatcher pathMatcher = new AntPathMatcher(); private FilterChainManager filterChainManager; filterChainManager是由上文创建的,pathMatcher 是用于匹配路径的。 核心方法是getChain(ServletRe...原创 2018-07-26 09:44:12 · 2503 阅读 · 0 评论 -
shiro框架源码解析与改造(三)---FilterChainManager
在ShiroFilterFactoryBean中,在创建filter实例时,调用了createFilterChainManager()方法来创建FilterChainManager,并对FilterChainManager 的一些变量进行了初始化 。 /** * 把拦截链,以及过滤器放进manager * @return */ private Filter...原创 2018-07-26 09:31:40 · 1856 阅读 · 0 评论 -
shiro框架源码解析与改造(二)---ShiroFilterFactoryBean
ShiroFilterFactoryBean是shiro框架的核心起始类,是shiro框架一切流程的源头。上文已经知道,DelegatingFilterProxy会从springmvc容器中查找这个类,并代理执行。 那么ShiroFilterFactoryBean类具体是干什么的呢?查看源码可以看到ShiroFilterFactoryBean实现了 FactoryBean接口,所以真正注...原创 2018-07-26 09:01:18 · 1647 阅读 · 0 评论 -
shiro框架源码解析与改造(一)---DelegatingFilterProxy
DelegatingFilterProxy是springmvc中的类。在传统项目中web.xml中配置:&lt;filter&gt; &lt;filter-name&gt;ShiroFilter&lt;/filter-name&gt; &lt;filter-class&gt;org.springframework.web.filter.DelegatingF原创 2018-07-26 08:49:24 · 653 阅读 · 0 评论 -
shiro框架源码解析与改造(十)---关于登陆的一些问题
为了让后登陆的人,挤掉先登陆的人。在登陆成功时,记录该账号对应的sessionID,那么在后来验证是否登陆时,就可以取出这个值做比较。 protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request, ServletResponse response) { ...原创 2018-08-10 16:02:55 · 227 阅读 · 0 评论