shiro入门视频教程14:shiro spring整合开发之登陆和退出功能(如果视频不清晰请选择高清模式)
使用FormAuthenticationFilter过虑器实现 ,原理如下:
1:当用户没有认证时,请求loginurl进行认证,再把用户身份和用户密码提交数据到loginurl
2:FormAuthenticationFilter拦截住取出request中的username和password(两个参数名称是可以配置的)
3:FormAuthenticationFilter调用realm传入一个token(username和password)
4:realm认证时根据username查询用户信息(在Activeuser中存储,包括 userid、usercode、username、menus)。
如果查询不到,realm返回null,FormAuthenticationFilter向request域中填充一个参数(记录了异常信息)
由于FormAuthenticationFilter的用户身份和密码的input的默认值(username和password),修改页面的账号和密码 的input的name属性为username和password。
以下是用户登录的典型实现案例,如图所示。