该功能只是搭建了一个shiro的框架,实现登陆验证和权限控制,其中的user信息和对应权限并没有连接数据库,是以本地变量代替
ssm中使用shiro框架包括这几个方面:
对应jar包或者maven坐标依赖, web.xml配置shiro fiter , shiro和spring整合的文件spring-shiro.xml, shiro自身组件(自定义的realm)
业务逻辑:只在登陆时调用shiro进行验证。
1.提交登陆(toLogin)请求后,controller层对应方法根据提交的user信息获取shiro相关内容,调用login方法(该方法shiro自带,结合自定义realm判断是否通过)
2.login方法内部调用shiro验证机制。我的realm组件验证时通过用户名获取用户信息,再提交给shiro进行验证。
3.调用login之前把客户端请求中的user信息保存到shiro相关组件,自定义的realm把查询到的user信息也保存在相关组件,shiro内部去验证。通过则允许登陆,不通过返回登陆页面
4.登陆成功后,自动调用权限模块,通过该user信息查询对应权限,将其显示到前端页面
下面是代码部分
前端页面:
regest.jsp和login.jsp(注:由于shiro设置了登陆不成功自动跳转登陆页面,而且如果登陆页面在web-inf下,是访问不到的------可以复制一份到web-inf外)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
注册页面
注册
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
登录页面
${error }
${user.username }
${user.password }