- 引入验证码
$("#changeCaptcha").attr("src","http://localhost:8080/fireweb/fire/captcha?uuid="+uuid);
设置一个image框,调取方法
然后controller中调取service方法
注意要在此文件夹下创建配置类
否则service中的producer无法注入
注意设置相应的实体类和mapper文件
- 进行验证
1.因为shiro封装了验证方法,使其只有username和password,所以我们需自己重写验证的方法,
继承了formAuthenticationFilter,因为我们后台需要uuid来进行数据库中验证码的比对,所以还同时传入了uuid,uuid实现方法是在jsp中写入了一个隐藏域,每次加载页面时调用一个函数生成uuid赋值给隐藏域。(注:为了让request.getParamter获取到值,要注意表单中input的命名与后台一致)。
2.同时shiro中userleam中调用的usernamepasswordToken只有用户名密码,所以我们需自定义token来进行写入uuid和验证码
- 配置文件修改
同时下面的配置也应该改成我们的过滤器名字,而且注意的是要在底下把我们获取验证码的路径改为anon,否则会因为没有登录而被拦截。
- 在userealm中写相关判断
整体修改的文件如下: