最原生的授权和认证可以通过Filter拦截器来做,但是这种方式代码量会比使用框架多好几倍,并且操作麻烦。之前在做Flask项目时,用到@login_required
标签,其作用就是告诉程序,使用这个方法是要求用户登录的。这个方法非常方便,但是定制度有点低。
关于Shiro的特点这里不作赘述,只是记录一下Shiro的简单使用和一些基本原理,作为未来翻阅的笔记。这里为官方源码里的QuickStart
做一个笔记,Shiro github源码。Shiro相关的配置再另一篇demo中记录讲解。
获取当前用户
关于SecurityUtils.getSubject()是怎么获取到当前用户信息的?
// get the currently executing user:
Subject currentUser = SecurityUtils.getSubject();
Shiro中的session
Shiro有自己的session
,这个session
不是web里的Session
。所以Shiro也适用于小的单体应用。每个session
都被绑定于一个subject
。
// Do some stuff with a Session (no need for a web or EJB container!!!)
Session session = currentUser.getSession();
session.setAttribute("someKey", "aValue");
String value