shiro的优势,不需要再代码里面判断是否登录,是否有执行的权限,实现了从前端页面到后台代码的权限的控制非常的灵活方便
传统的登录认证方式是,从前端页面获取到用户输入的账号和密码之后,直接去数据库查询账号和密码是否匹配和存在,如果匹配和存在就登录成功,没有就提示错误
而shiro的认证方式则是,从前端页面获取到用户输入的账号和密码之后,传入给一个UsernamePasswordToken对象也就是令牌,
然后再把令牌传给subject,subject会调用自定义的 realm,
realm做的事情就是用前端用户输入的用户名,去数据库查询出一条记录(只用用户名去查,查询拿到返回用户名和密码),然后再把两个密码进行对比,不一致就抛出异常
也就是说如果subject.login(token);没有抛出异常,就表示用户名和密码是匹配的,表示登录成功
实现步骤:
1.在maven中引入shiro-all包;
2.配置shiroConfig
3.继承AuthorizingRealm,重写doGetAuthenticationInfo方法
4.自己定义认证方法,创建UsernamePasswordToken对象token
5.subject.login(token)认证
实现可参考:
https://blog.csdn.net/sage_wang/article/details/79592269
获取更多精彩内容,请支持关注博主公众号