JEECG登陆全过程
登录全过程
配置的过滤器:
类型 |
名称 |
类 |
Url匹配规则 |
备注 |
Filter |
openSessionInViewFilter |
OpenSessionInViewFilter |
*.do |
用来控制Hibernate的Session,根据请求开启和关闭 |
encodingFilter |
CharacterEncodingFilter |
/* |
字符集过滤器统一字符集编码为UTF-8 |
|
druidWebStatFilter |
WebStatFilter |
在该过滤器中配置Web应用和Druid数据源之间的管理关联监控统计 |
在登陆初始化控制器LoginController中定义了登录信息校验、管理员信息初始化、用户登录、用户菜单初始化等逻辑。
登录时action的路径为loginController.do?checkuser、loginController.do?login
在输入用户名、密码、验证码后执行执行登录操作
js代码如下:
- //登录处理函数
- function Login() {
- setCookie();
- var actionurl=$('form').attr('action');//提交路径
- var checkurl=$('form').attr('check');//验证路径
- var formData = new Object();
- var data=$(":input").each(function() {
- formData[this.name] =$("#"+this.name ).val();
- });
- $.ajax({
- async : false,
- cache : false,
- type : 'POST',
- url : checkurl,// 请求的action路径
- data : formData,
- error : function() {// 请求失败处理函数
- },
- success : function(data) {
- var d = $.parseJSON(data);
- if (d.success) {
- loginsuccess();
- setTimeout("window.location.href='"+actionurl+"'", 1000);
- } else {
- if(d.msg == "a"){
- $.dialog.confirm("数据库无数据,是否初始化数据?", function(){
- window.location = "init.jsp";
- }, function(){
- //
- });
- } else
- showError(d.msg);
- }
- }
- });
- }
首先会请求checkurl,去进行用户信息的校验,校验成功后请求actionurl执行登录操作。
校验和登录操作都是在登录控制器LoginController中实现的。
在类LoginController中的checkuser来完成验证任务
验证码校验:request参数中取到验证码randCode,校验该验证码是否为空,是否和session中存放的一致。如果为空或者不一致,会返回异常信息到页面,在页面显示。
用户信息校验:在POST数据中取出用户凭证即参数中的TUser user。首先会去查询系统用户父类表t_s_base_user及系统用户表t_s_user中是否有数据,来判断数据库有无数据,来提示用户是否初始化数据库。(每个用户登录都要去查询出用户表中的所有操作进行校验,该步校验操作当系统用户量大时,大量的数据库查询操作会对系统性能有很大影响,建议加个条件判断,或者使用缓存技术,对查询的数据进行缓存,以减少没必要的数据库操作。)。
在校验完数据库中是否有数据后,就进行了用户信息的校验,在用户信息校验时只进行了用户是否存在和密码匹配的校验,并没有进行其它信息的校验。(在进行登录校验时可以增加账户锁定检查、ip锁定检查(是否超过最大登录次数)、指定时间登录检查、指定ip登录限制检查(ip不允许登录)、用户登录审计(密码重试次数超过限定次数)等校验,使校验逻辑更加严谨)。
在进行完数据校验后记录登录成功日志,返回验证成功信息。前台js方法//登录处理函数function login(){}接收到返回的登录成功信息后,执行loginController.do?login的跳转,在这里对用户的权限进行判断,用以展现用户拥有权限的菜单。
JEECG的用户权限模型使用的是基于角色的访问控制模型,角色就是一个或一群用户在组织内可执行的操作的集合。
RBAC的主要思想是将用户与角色关联,角色与访问权限关联,通过给用户分配适合的角色,让用户与访问权限相联系。用户自己不能进行自主授权和权限转移,必须通过角色来传递授权信息实现访问控制。由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢的多,减小了授权管理的复杂性,降低了管理开销。
RBAC基本模型主要由四个要素构成:用户、角色、权限和会话。
每个Session是一个映射,一个用户到多个role的映射。当一个用户激活他所有角色的一个子集的时候,建立一个session。每个Session和单个的user关联,并且每个User可以关联到一个或多个Session。
根据该权限模型,用户登录系统后,系统会根据登录的用户的用户id去查询用户角色关联表(t_s_role_user),该表中查询出该用户所拥有的所有的角色,根据查询出的用户角色关系列表,获取该用户拥有权限的一级菜单列表。然后在根据用户设置的主题风格跳转到不同的主页面。
JEECG登陆全过程相关推荐
- java手机验证码登陆_在Web项目中手机短信验证码实现的全过程记录
这篇文章主要给大家介绍了关于在Web项目中实现短信验证码的全过程记录,文中通过示例代码介绍的非常详细,在文末跟大家提供了源码下载,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧. 前言 最近在做 ...
- 根据PSD登陆页面设计稿切图制作HTML网页全过程
切图的目的是把PSD设计稿转换为HTML页面.记得自己当时学习切图时,网上切图相关的文章是不少,但是大都是讲怎么使用切片工具把一张图片分割成多张图片,然后存储为Web使用格式,并且都比较简单和零碎,并 ...
- (原创)Openwrt路由器Post登陆校园网全过程(后续再补)
我是非常厌烦学校校园网的iptable,每次上网都要输入账号密码,而且IP池租期又短才十几分钟.所以我就想有没有什么方法可以跳过这个过程.我一想,POST肯定避免不了的的,如果用电脑去实现这个过程,我 ...
- RHEL5(CentOS)下nginx+php+mysql+tomcat+memchached配置全过程(转)
RHEL5(CentOS)下nginx+php+mysql+tomcat+memchached配置全过程 一.准备工作:SSH,telnet终端中文显示乱码解决办法vi /etc/sysconfig/ ...
- ESXi安装全过程及基本配置
ESXi安装全过程 在网上逛了一圈,发现没什么人介绍关于ESXi的安装方法,虽然我们可以直接在官网上下载相关的资料,但还是有部分人看不懂,今天我就来介绍一下安装方法及基本的配置. 由于我将会在VMwa ...
- HTML+MYSQL+PHP搭建带有cookie的登陆页面
这周学长给我们布置了新任务,要让我们在一周内搭建一个带有cookie的登陆界面,任务很轻松(才怪),几经波折之后终于弄好了(呜呜呜~),下面总结一下过程. 在本地搭建一个带有cookie的登陆注册界面 ...
- jeecg开源项目的IDEA的部署
JEECG采用了SpringMVC + Hibernate + Minidao(类Mybatis) + Easyui(UI库)+ Jquery + Boostrap + Ehcache + Redis ...
- 【支付宝服务窗】JEECG支付宝服务窗平台指南
一. 支付宝服务窗的申请与准备工作: 申请详见官方文档: 1. 使用RSA密钥生成工具生成相关的公钥. a) 密钥生成工具下载地址,点击下载 b) 使用工具生成密钥: 在工具目录当中也会生成三个pem ...
- Jeecg入门篇,高手掠过
本帖最后由 jueyue 于 2014-4-7 22:25 编辑 高手可以掠过,这个只是jeecg的开篇介绍,介绍些设置 忘记了,这个才是首先 这个文件是代码生成器的入口,右键run运行就可以了 首先 ...
- 开发指南专题四:JEECG微云快速开发平台--JEECG开发环境搭建
开发指南专题四:JEECG微云快速开发平台开发环境搭建 1. JEECG开发环境搭建 JEECG推荐的开发环境为Myeclipse8.5/Eclipse3.7+JDK1.6+Tomcat6.0 1.1 ...
最新文章
- 配置中心Apollo的设计原理
- android 锁屏
- 交流经过整流桥后的电压计算方法(不权威)
- UIGraphicsBeginImageContext系列知识
- Java.util.Date.getTime()出现负数的问题
- 数据仓库、商业智能的体系结构
- LeetCode 1305. 两棵二叉搜索树中的所有元素(二叉树迭代器)
- 论文学习20-End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF(序列标注,2016ACL
- [Git]4.2 标签
- Python生成requirements.txt方法
- 探秘HDR:西瓜、抖音是如何做到让视频的画质堪比影院大片的?
- android手机误删通讯录恢复
- 微软Azure云服务故障超过24小时,原因竟是——被雷劈了
- js设计模式之单例模式
- 如何利用官方SDK文件来辅助开发?
- 监控系统选型,一文轻松解决
- [PS] 透明底图片制作
- 小米商城网页版(js+css)
- 蓝桥杯 结果填空 猜生日
- SPI与IIC的异同