1.获取当前的Subject,调用SecurityUtils.getSubject()。
2.检测当前用户是否已经被认证,即是否已经登陆,调用Subject的isAuthenticated()。
3.若没有被认证,则把用户名和密码封装为UsernamePasswordToken对象。
3.1认证流程
(1)创建一个登陆表单页面。
(2)将请求提交到SpringMVC的Handler中。
(3)获取用户名和密码。
4.执行登陆,调用Subject的login(AuthenticationToken)方法。
5.自定义Realm的方法,从数据库中获取对应的记录,放回给Shiro。
5.1Realm调用的方法
(1)实际上需要继承org.apache.shiro.realm.AuthenticatingRealm类。
(2)实现doGetAuthenticationInfo(AuthenticationToken)方法。
6.由Shiro完成对密码的对比。