- 浏览: 1119535 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1055)
- quartz定时任务 (1)
- json (9)
- 接口 (1)
- http (1)
- sccket (2)
- xmlbean (1)
- webservice (1)
- flex (1)
- sitemesh (2)
- json组装 (2)
- 存储过程 (6)
- ajax后台返回前台上下问 (3)
- flect反射机制 (1)
- 页面列表 (1)
- oracal结果集合并 (1)
- lucene (1)
- 读取配置文件工具 (1)
- 框架整合 (1)
- jms (3)
- 断点续传 (1)
- 页面之间的传值 (1)
- jpa (6)
- sql (8)
- jsp跳转 (1)
- jsp (6)
- jquery (2)
- ui (1)
- js与jsp之间的值的交互应用 (1)
- js空值判断 (1)
- Ajax (9)
- web-inf 编译目录 (1)
- 多线程 (9)
- 资料 (0)
- oracal (4)
- 多线程webservice (1)
- ztree (1)
- 加载与内容的变化 (1)
- 页面的公用变量 (1)
- web-inf目录结构 (1)
- 登陆系列 (1)
- jass应用于webservice认证 (2)
- 路径问题 (1)
- list合并 (1)
- list map中的value获取 (2)
- 标签tag (4)
- 方法 (1)
- 树形数据及其渲染 (1)
- require js 回调 (1)
- tab 页面切换 (2)
- 计时获取验证码 (1)
- 模式 (6)
- easyui (3)
- dialog (2)
- 乱码问题 (1)
- spring (29)
- sqlserver (1)
- iis,netframework (0)
- iis (1)
- netframework (1)
- 处理乱码问题 (1)
- struts-ajax (0)
- ,理论,了;,; (0)
- 排错方法 (1)
- hibernate (1)
- 二级缓存 (1)
- portal (1)
- date类型 (0)
- jvm out of memery StackOverflowError (1)
- echart数据填充 (0)
- echart (1)
- jmv (1)
- 学习 (0)
- java基础 (1)
- oracle性能优化 (1)
- 数据库三范式 (1)
- easy UI (1)
- oracle11g (1)
- form (3)
- servlet (2)
- spring mvc (1)
- htm5 (0)
- ibatise (1)
- 序列化 (1)
- tomcat双认证 (1)
- maven Lib (1)
- tomcat eclipse (2)
- ehcache (1)
- http 代替 ajax (2)
- rest (6)
- script脚本占位模板 (1)
- strust 标签 el表达式 (1)
- js bo (1)
- 公司资料 (0)
- js return (1)
- spring 第三方插件的工具类 (1)
- linux (10)
- linux 克隆 (1)
- linux xshell连接 (1)
- yum expect (1)
- linux 应用命令 (1)
- yum 缓存rmp包 (1)
- yum 本地库离线安装 (2)
- yum错误 (1)
- jsp页面用定时调用 (1)
- ajax setup (2)
- Exception,RuntimeException (1)
- 对话框 dialog (1)
- maven (17)
- PropertyPlaceholderConfigurer properties文件 (1)
- 错误集 (1)
- mybatise (0)
- 拦截器filter (1)
- http get post 区别 (1)
- rest 客户端两种返回的数据处理方式 (1)
- listener (2)
- maven工程 (1)
- ContainerResponseFilter (1)
- ajax action 打印任意实体类jsp (1)
- yum svn mvn (1)
- 分页 (1)
- angularjs (1)
- memcached (1)
- git (12)
- yyyyyyyy (0)
- oracal安装 (4)
- jaxwswebservice (1)
- spring bean (1)
- 排方法 (0)
- java 生成pdf (2)
- 创建目录 (1)
- 下载与生产pdf文件 (1)
- base64 (2)
- 配置文件 (2)
- blob (1)
- pdf (1)
- yum linux 安装Oracle (1)
- excl 插入数据库 (1)
- 搭建框架 (1)
- .classpath和jdk jre (1)
- mybatise 配置文件通配 (1)
- 用Maven插件生成Mybatis代码 (2)
- springmvc值的传递 (1)
- js jsp html (1)
- ajax跨域 (1)
- javamail (0)
- 提交复杂格式json数据 (1)
- get中文乱码/post (1)
- 弹出框,承载弹出链接----页面,显示大图 (1)
- @RequestBody list bean (1)
- 隐藏域 (1)
- 多页保存 (1)
- form 校验 (1)
- 注册,上传图片 (1)
- 登录验证 (1)
- 全局的异常处理 (0)
- 异常捕获,显示在页面 (0)
- mybatise事物配置 (1)
- maven compile (1)
- 时间格式 (1)
- js 跳转页面 (1)
- pringsecurity 角色授资源要重启服务 (0)
- Retrofi restfull (1)
- session过期推出,直接点击退出,退出 (0)
- 参数放于requestbody (1)
- maven本地仓库jar包 (1)
- 编译环境出错jdk1.6 1,7 (1)
- jsonarray ---json数组格式 (1)
- java后台文件上传,接受的2种方式 (0)
- 生成保存图片 (1)
- 权限mysql数据库Md5加密sql (1)
- mysql一对多关联查询 (1)
- mysql批量更新 (0)
- oracle in exists 区别 (1)
- https (1)
- linux发布脚本 (1)
- dubbo zookeepr (1)
- request.getParameter() (1)
- request.setAttribute() (1)
- @RequestMapping @ResponseBody (1)
- @RequestMapping @responsebody src控件 后台如何写入src值 (1)
- dwz (8)
- lib jar maven (1)
- web服务访问名称 (1)
- mvc返回内容设置,拦截 (1)
- @ResponseBody 返回json处理 (1)
- 视图,函数,存储过程 (1)
- <context:annotation-config/> (1)
- <context:component-scan/> (1)
- xml路劲通配 (2)
- 杂项 (1)
- dubbo (34)
- redis (25)
- mybatis (34)
- springmvc (15)
- js (7)
- sprinvmvc (1)
- 设计理念 (1)
- 工程 (1)
- 其他 (149)
- 导出,下载 (1)
- session (4)
- token (1)
- Exception处理 (2)
- 注解 (2)
- 框架 (3)
- shrio (1)
- login (1)
- 项目结构设计 (1)
- mybatis两种关联查询 (1)
- mybaits (2)
- 迭代模式 (1)
- oralce树形数据结构构建 (2)
- 树形结构的jsp展现 (1)
- filter intecept(Struts) (1)
- 树形结构数据的提交 (1)
- @RequestBody @RequestParam (1)
- div (1)
- equals重写 (1)
- 程序设计 (1)
- f多层for循环跳出 (1)
- 看源码 (0)
- 权限系统普遍通性 (1)
- 设计程序 (1)
- 动态拼接元素样式问题 (1)
- sql迭代 (1)
- debug断点 (1)
- spring mvc 扫描注解(ioc (1)
- di) (1)
- jdk (2)
- cglib (1)
- mybatis 多层括号(超过三层)解析不了 (1)
- tiles (2)
- cacheManager缓存的切换 (1)
- jsp,xml中el表达式等占位符中的数据操作 (1)
- jpa 及spring data jpa开发 (1)
- compareTo equals toString (1)
- 子页面用父页面js (1)
- jsp相对路径自加问题 (1)
- bean之间的相互拷贝 (1)
- DECODE (2)
- 泛型 (2)
- NVL (1)
- jsp jstl函数 用标签声明页面变量,供jstl使用,时间格式问题 (1)
- form表单切换action值 (1)
- response.getWriter().write()功能优于springMvc的返回 (1)
- 快速复制构建项目 (1)
- activeMq (15)
- cache (2)
- sql获取序列号 (1)
- 上传 (2)
- tfs (1)
- jsp标签 (2)
- qita (1)
- 触发器 (1)
- Exception (1)
- mybais (1)
- 标签 (1)
- connect by (1)
- for ... in (1)
- map转化为list (1)
- 树形结构list构建(树形实体) (1)
- 左侧菜单的设计 (1)
- response.getWriter().write() (1)
- eclipse打断点之后断无效 (1)
- 直接访问/web-inf/下的页面 (1)
- clob (1)
- freemark (1)
- 框架的设计 (1)
- get方式处理乱码 (1)
- Request的getParameter和getAttribute方法的区别 (1)
- cas (9)
- 时间格式问题 (1)
- ResponseUtil.writeToResponse (1)
- 树形数据的反选 (1)
- spring data jpa (1)
- jsp异常提示 (1)
- jquery js (1)
- eclipse (1)
- 乱码 (1)
- Json OBJETC (1)
- PROCEDURE (1)
- pl/sql oracle (1)
- 设计 (1)
- el表达式 (3)
- iframe (1)
- map (1)
- jsp中调用Java (1)
- response.getWriter().write() ajax (1)
- mybatis xml 传入参数 (0)
- response与request在返回时作用区别 (1)
- spring cache (1)
- 模型驱动 (1)
- 关于mybatis传空值的处理 (1)
- 日志配置 (1)
- mapper (1)
- mapper mybatis (1)
- mapper mybatis-spring spring-data-jpa (1)
- js插件 (1)
- spring-data-jpa (2)
- 字节流转化过程 (1)
- 数据库 (11)
- jsp页面 (1)
- 局域网络访问问题 (1)
- plsql (2)
- response (1)
- plsq (1)
- Proxool (1)
- cas security (1)
- 系统配置化 (1)
- 集群 (4)
- springboot (24)
- 设计模式 (5)
- 通知 (1)
- 架构 (48)
- zookeeper (5)
- mvc框架 (1)
- 事物隔离策略 (1)
- jvm (8)
- 调研 (1)
- Java工具类 (1)
- 并发容器 (3)
- 多线程管理器 (4)
- 简历 (0)
- 查询 (1)
- 集群工具 (1)
- springMcv (1)
- ConcurrentHashMap (1)
- hashtable (1)
- cac (1)
- 树形结构 (1)
- 定时任务 (1)
- tortoiseGit (2)
- struts (11)
- shiro (31)
- log4j (3)
- struts2 (2)
- 编码 (1)
- request (3)
- Nginx (14)
- tomcat (1)
- idea (12)
- mvc (2)
- BeanUtils (2)
- image (1)
- mino (1)
- httpClient (1)
- volecity (1)
- swagger (3)
- 调错 (0)
- data (1)
- log (1)
- shell (1)
- 事物 (3)
- junit (1)
- RestTemplate (2)
- 线程 (0)
- Exception异常处理 (1)
- Exception异常注解 (1)
- lock (1)
- HashMap (1)
- 面试 (0)
- rabbitMq (1)
- rainCat (1)
- 其它 (1)
- activemq消息传送机制以及ACK机制详解 (0)
- mysql (7)
- fildder (1)
- UML (1)
- 校验 (1)
- 反射 (1)
- 切面 (1)
- springioc (1)
- urule2 (0)
- skywalking (1)
- urule (2)
- docker (2)
- 前端 (1)
- bootstrap (1)
- eureka (2)
- springcloud (16)
- jenkins (2)
- springsecurity (1)
- 数据结构 (4)
- gradle (1)
- mycat (3)
- nacos (1)
- canary (1)
- 线程池 (1)
- solr (1)
- resteasy (2)
- BI (1)
- dfs (2)
- elasticsearch (1)
- ruby (1)
- logstash (1)
- clickhouse (2)
- davinci (15)
- java (1)
- davinvi (1)
- fastdfs (1)
- vue (1)
- 《将博客搬至CSDN》 (1)
最新评论
-
nizhipeng123:
private SessionFactory sessio ...
用map接收参数的几个注意的问题
shrio:
shrio集成好了之后需要自己写登录方法,在此方法里面构造 token,将token传入内置的login方法即可,调用框架里的验证:(currentUser.login(token);)
/**
* 登录
*
* @author rcb
*/
@RequestMapping(value = "/login")
public String login(OpmUser currUser, ModelMap model, HttpSession session, HttpServletRequest request) {
Subject currentUser = SecurityUtils.getSubject(); // 获取当前的Subject
// 验证是否登录成功
// if(currentUser.isAuthenticated()){
// return "dwzIndex";
// }
String resultPageURL = InternalResourceViewResolver.FORWARD_URL_PREFIX + "/";
String username = request.getParameter("username");
String password = request.getParameter("password");
opmUserService.getOpmUsers();
String verifyCode = (String) request.getSession().getAttribute("validateCode"); // 获取HttpSession中的验证码
String submitCode = WebUtils.getCleanParam(request, "verifyCode"); // 获取用户请求表单中输入的验证码
if (StringUtils.isEmpty(submitCode)
|| !StringUtils.equals(verifyCode.toLowerCase(), submitCode.toLowerCase())) {
request.setAttribute("message_login", "验证码不正确");
return resultPageURL;
}
password = MD5.encryptMD5(Base64.encode(password));
/* password = MD5.encryptMD5(Base64.encode("111111")); */
UsernamePasswordToken token = new UsernamePasswordToken(username, password); // 为了验证登录用户而封装的token
token.setRememberMe(true);// 设计记住用户
try {
// 在调用了login方法后,SecurityManager会收到AuthenticationToken,并将其发送给已配置的Realm执行必须的认证检查
// 每个Realm都能在必要时对提交的AuthenticationTokens作出反应
// 所以这一步在调用login(token)方法时,它会走到AuthenticationRealm.doGetAuthenticationInfo()方法中,具体验证方式详见此方法
currentUser.login(token);
resultPageURL = "dwzIndex";
} catch (UnknownAccountException uae) {
System.out.println("对用户[" + username + "]进行登录验证..验证未通过,未知账户");
request.setAttribute("message_login", "未知账户");
} catch (IncorrectCredentialsException ice) {
System.out.println("对用户[" + username + "]进行登录验证..验证未通过,错误的凭证");
request.setAttribute("message_login", "密码不正确");
} catch (LockedAccountException lae) {
System.out.println("对用户[" + username + "]进行登录验证..验证未通过,账户已锁定");
request.setAttribute("message_login", "账户已锁定");
} catch (ExcessiveAttemptsException eae) {
System.out.println("对用户[" + username + "]进行登录验证..验证未通过,错误次数过多");
request.setAttribute("message_login", "用户名或密码错误次数过多");
} catch (AuthenticationException ae) {
// 通过处理Shiro的运行时AuthenticationException就可以控制用户登录失败或密码错误时的情景
System.out.println("对用户[" + username + "]进行登录验证..验证未通过,堆栈轨迹如下");
ae.printStackTrace();
request.setAttribute("message_login", "用户名或密码不正确");
}
// 验证是否登录成功
if (currentUser.isAuthenticated()) {
System.out.println("用户[" + username + "]登录认证通过");
model.addAttribute("username", username);
return "dwzIndex";
} else {
token.clear();
}
return resultPageURL;
}
security:
直接在jsp form中提交security的登录请求地址,当然,此时,用户名,密码等字段名要与规定的一致
shrio集成好了之后需要自己写登录方法,在此方法里面构造 token,将token传入内置的login方法即可,调用框架里的验证:(currentUser.login(token);)
/**
* 登录
*
* @author rcb
*/
@RequestMapping(value = "/login")
public String login(OpmUser currUser, ModelMap model, HttpSession session, HttpServletRequest request) {
Subject currentUser = SecurityUtils.getSubject(); // 获取当前的Subject
// 验证是否登录成功
// if(currentUser.isAuthenticated()){
// return "dwzIndex";
// }
String resultPageURL = InternalResourceViewResolver.FORWARD_URL_PREFIX + "/";
String username = request.getParameter("username");
String password = request.getParameter("password");
opmUserService.getOpmUsers();
String verifyCode = (String) request.getSession().getAttribute("validateCode"); // 获取HttpSession中的验证码
String submitCode = WebUtils.getCleanParam(request, "verifyCode"); // 获取用户请求表单中输入的验证码
if (StringUtils.isEmpty(submitCode)
|| !StringUtils.equals(verifyCode.toLowerCase(), submitCode.toLowerCase())) {
request.setAttribute("message_login", "验证码不正确");
return resultPageURL;
}
password = MD5.encryptMD5(Base64.encode(password));
/* password = MD5.encryptMD5(Base64.encode("111111")); */
UsernamePasswordToken token = new UsernamePasswordToken(username, password); // 为了验证登录用户而封装的token
token.setRememberMe(true);// 设计记住用户
try {
// 在调用了login方法后,SecurityManager会收到AuthenticationToken,并将其发送给已配置的Realm执行必须的认证检查
// 每个Realm都能在必要时对提交的AuthenticationTokens作出反应
// 所以这一步在调用login(token)方法时,它会走到AuthenticationRealm.doGetAuthenticationInfo()方法中,具体验证方式详见此方法
currentUser.login(token);
resultPageURL = "dwzIndex";
} catch (UnknownAccountException uae) {
System.out.println("对用户[" + username + "]进行登录验证..验证未通过,未知账户");
request.setAttribute("message_login", "未知账户");
} catch (IncorrectCredentialsException ice) {
System.out.println("对用户[" + username + "]进行登录验证..验证未通过,错误的凭证");
request.setAttribute("message_login", "密码不正确");
} catch (LockedAccountException lae) {
System.out.println("对用户[" + username + "]进行登录验证..验证未通过,账户已锁定");
request.setAttribute("message_login", "账户已锁定");
} catch (ExcessiveAttemptsException eae) {
System.out.println("对用户[" + username + "]进行登录验证..验证未通过,错误次数过多");
request.setAttribute("message_login", "用户名或密码错误次数过多");
} catch (AuthenticationException ae) {
// 通过处理Shiro的运行时AuthenticationException就可以控制用户登录失败或密码错误时的情景
System.out.println("对用户[" + username + "]进行登录验证..验证未通过,堆栈轨迹如下");
ae.printStackTrace();
request.setAttribute("message_login", "用户名或密码不正确");
}
// 验证是否登录成功
if (currentUser.isAuthenticated()) {
System.out.println("用户[" + username + "]登录认证通过");
model.addAttribute("username", username);
return "dwzIndex";
} else {
token.clear();
}
return resultPageURL;
}
security:
直接在jsp form中提交security的登录请求地址,当然,此时,用户名,密码等字段名要与规定的一致
相关推荐
"手机移动端登录login html5模板_手机 移动端 wap 登录 login 后台.zip"是一个专门针对手机移动端设计的HTML5登录模板,它可以帮助开发者快速构建适应于WAP(无线应用协议)的登录后台系统。 首先,我们来了解一下...
标题中的“手机移动端登录login html5模板_手机 移动端 wap 登录 login 后台.rar”指示了这是一个专为手机移动端设计的HTML5登录界面模板,适用于WAP(无线应用协议)环境。这个模板可能包含了一系列用于构建用户...
"手机移动端登录login html5模板-手机 移动端 wap 登录 login 后台.rar" 文件提供了一个专为手机用户设计的HTML5登录模板,适用于移动设备和WAP(无线应用协议)环境。 这个模板基于HTML5技术,HTML5作为最新的超...
【标题】"手机移动端登录loginhtml5模板_手机移动端wap登录login后台.rar" 提供的是一种专门针对手机移动端设计的HTML5登录界面模板。在移动设备的普及下,这种模板对于开发者来说尤其重要,因为它可以帮助他们快速...
该资源是一个名为“背景自动变换炫酷后台登录html模板-背景 后台 登录 login.rar”的压缩包,从标题和描述中我们可以推断,它包含一个设计独特的HTML模板,主要用于创建具有动态背景变化功能的后台登录页面。...
在"SSH2的登录login(ssh+ajax)"中,描述提到的是一个使用SSH2协议并结合Ajax技术实现的登录功能。Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页内容的技术。它通过...
APP登录form表单html5模板下载_登录 login form 表单 注册 bootstrap app.zipAPP登录form表单html5模板下载_登录 login form 表单 注册 bootstrap app.zip
Amaze UI 手机wap登录页html模板_Amaze UI 手机 登录 login 注册 wap.zipAmaze UI 手机wap登录页html模板_Amaze UI 手机 登录 login 注册 wap.zip
简单bootstrap后台管理系统模板下载_简单 后台 后台管理 后台系统 admin 登录 login admin管应.zip简单bootstrap后台管理系统模板下载_简单 后台 后台管理 后台系统 admin 登录 login admin管应.zip
CMS后台管理系统模板下载_简单 CMS后台 后台 后台管理 后台系统 admin 登录 login admin管理 管理员 后CMS后台管理系统模板下载_简单 CMS后台 后台 后台管理 后台系统 admin 登录 login admin管理 管理员 后
《Odoo 12 Web Login 模块:动态登录界面详解》 Odoo,作为一款全球领先的开源企业级管理软件,其丰富的模块化设计深受广大用户的喜爱。在Odoo 12版本中,一个引人注目的特性是其登录界面可以根据时间动态切换,为...
对于/login路径,使用了别名(alias)'/accounts/login',这意味着访问这两个路径都会渲染同一个登录页面组件(login.vue)。 4. 登录页面组件的开发 登录页面是用户与应用交互的第一步,通常需要包含用户名和密码...
标题"用友U8 V16.0二开调试Login"指的是在用友U8 V16.0版本中,对登录模块进行二次开发后的调试工作。这个过程涉及到多个关键知识点,下面将详细介绍这些内容。 1. **用友U8系统**:用友U8是用友软件公司推出的企业...
这个"CSS用户登录login页面html模板"就是专为开发者提供的一种快速构建美观、功能齐全的登录界面的工具。以下是对该模板及其相关知识点的详细说明: 首先,让我们了解HTML(HyperText Markup Language)的基本概念...
登录login页面是网站和应用程序的重要组成部分,它是用户进入系统的第一道关卡,提供验证身份的界面。HTML模板在此过程中起到关键作用,它定义了页面的布局、样式和交互元素。以下将详细介绍登录login页面HTML模板的...
login.jsp用户登录界面login.jsp用户登录界面login.jsp用户登录界面login.jsp用户登录界面
这里我们关注的是一个用PHP实现的登录页面,名为"login.php"。PHP是一种广泛使用的服务器端脚本语言,尤其适用于Web开发,可以与HTML紧密集成,为动态网站提供强大的支持。 首先,让我们深入了解PHP如何处理用户...