ssm项目session使用及其作用域问题
这两天由于自己在前端用到ajax发起异步更新请求,发现ajax会暴露后端的接口地址,这个问题当然是避免不了的啦,前端都是明文。可怜于是就在百度、谷歌、QQ群里各种查询各种提问题,都说只能通过安全验证去解决问题,作为新手第一个选择的当然是session啦,网上还有token验证、shrio框架等,有兴趣的朋友可以网上搜寻教程学习。
session是存在服务器的一种缓存机制,可以验证用户是否已经登录过了。我把自己学到的写上来,可以让新手少走弯曲路,直接上代码~
第一、在SSM的登录接口参数里需要加入
HttpServletRequest request请求,用来获取请求携带的session
第二、登录接口内代码进行session设置,
HttpSession session = request.getSession(true);//这句是获取session,true是表示如果没有则新建一个session,可以不用填
session.setAttribute("logined","success");//这句话是写入一个标识,你也可以把登录的账号设置在session里面,防止发起修改请求时恶意篡改另一个帐号的资料。
第三、如何在接口验证呢?同样需要带HttpServletRequest request参数请求用于获取客户端发起http请求所携带的session,
HttpSession session = request.getSession(); session.getAttribute("logined")则读取是否有logined这个key,如果没有说明没有登录过,就不给请求内容,直接返回信息提醒用户登录。
ssm项目session作用域问题
描述:用户登录系统成功后把该用户的相关信息放进一个session域中方便调用,并取名为xx,
当用户登录进入此系统之后要修改个人信息,修改完之后,将用户在前台页面修改后的个人信息重新塞到这个session域中,覆盖之前的session,这样用户当再次登录时或者查看时就是他修改之后的信息。
分析:当用户修改完个人信息之后想要再修改个人登录密码(修改个人信息和修改个人密码不在同一页面),此时就会提示输入的旧密码错误,因为修改个人信息的时候并没有个人密码,也就是在用户修改完将自己的信息塞进session的时候,个人密码封装进去的就是空值了,此时就取不到用户登录的真正密码。
解决办法:若想实现修改完个人信息之后顺利的修改个人密码,就要在修改个人信息的页面加上一个用户密码的隐藏域。这样个人登录密码也会随着用户修改的信息封装进对象,呗=被塞进session域中,这样可以在修改密码时调用session域中的内推,密码就不会为空了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- ssm项目session作用域问题
- 使用ssm框架的java项目由mysql转oracle遇到问题
- ssh项目使用uploadify-v2.1.4上传插件出现诡异问题(session丢失、初始化请求)
- abp项目中无法使用HttpContext.Current.Session[""]的问题
- ssm项目使用Mybatis动态拼接sql语句,生成的sql中文全部显示为???的问题(配置文件sql语句中文解析问题)
- 大中型互联网项目对session,cookie的使用建议及其跨域处理
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- ssm项目使用注解,解决bean注入的问题
- vs2008发布项目,放到服务器上使用的全过程及其遇到的问题
- 关于在SSH项目中使用OpenSessionInViewFilter过滤器后数据库数据不更新的问题
- 某教育平台项目开发之--使用SSM框架开发过程遇到的问题总结
- 005商城项目:ssm框架的整合成功之后的问题:使用maven的tomcat插件时的debug
- 使用phonegap建立安卓webapp项目及其问题总结
- Ajax.Net在用户控件中使用Session时的问题
- 在ASP.NET中使用Session常见问题集锦
- URL重写解决Session不能使用问题
- 在ASP.NET中使用Session常见问题集锦
- WAS 5.x中数据源的配置使用及其常见问题
- 在ASP.NET中使用Session常见问题集锦
- URL重写解决Session不能使用问题