jeecms框架单点登录功能的实现
来源:互联网 发布:花千骨网络流行语 编辑:程序博客网 时间:2024/06/04 19:10
单点登录的功能实现主要原理:
1: 在点击登录按钮的时候使用reponse.addCookie()方法向浏览器发送cookie;
2: 在前段拦截器中的request.getCookie()在接收到设置的cookie,然后根据cookie的值设置用户;
jeecms里在CookieUtils类中封装了cookie的3个基本方法 addCookie()添加、getCookie() 获取和cancleCookie()取消
/** * 根据部署路径,将cookie保存发送到浏览器 * * @param request * @param response * @param name cookie的名字 * @param value cookie的值 * @param expiry cookie生效的根路径 * @param domain cookie生效的域名可以是ip地址 * @return */public static Cookie addCookie(HttpServletRequest request,HttpServletResponse response, String name, String value,Integer expiry, String domain) {Cookie cookie = new Cookie(name, value);if (expiry != null) {cookie.setMaxAge(expiry);}if (StringUtils.isNotBlank(domain)) {cookie.setDomain(domain);}String ctx = request.getContextPath();cookie.setPath("/");response.addCookie(cookie);return cookie;}
/** * 获得cookie * * @param request * HttpServletRequest * @param name * cookie name * @return if exist return cookie, else return null. */public static Cookie getCookie(HttpServletRequest request, String name) {Assert.notNull(request);Cookie[] cookies = request.getCookies();if (cookies != null && cookies.length > 0) {for (Cookie c : cookies) {if (c.getName().equals(name)) {return c;}}}return null;}
/** * 取消cookie * * @param request * @param response * @param name * @param domain */public static void cancleCookie(HttpServletRequest request,HttpServletResponse response, String name, String domain) {Cookie cookie = new Cookie(name, "");cookie.setMaxAge(0);String ctx = request.getContextPath();cookie.setPath(StringUtils.isBlank(ctx) ? "/" : ctx);if (StringUtils.isNotBlank(domain)) {cookie.setDomain(domain);}response.addCookie(cookie);}功能实现主要是在CasLogin类中的submit()方法中加入使用addCookie()添加cookie;
然后在FrontContextInterceptor类中的preHandle()方法中使用getCookie()获取cookie,通过cookie设置当前用户;
代码如下:
if (view != null) {Cookie cookie1 = CookieUtils.addCookie(request, response, "fabule_username", user.getId().toString(), 6000, "192.168.0.14");return view;} else {FrontUtils.frontData(request, model, site);return "redirect:login.jspx";}
CmsUser user = null;Cookie userCookie = CookieUtils.getCookie(request, "fabule_username"); if(user == null && userCookie != null){ Integer userId = Integer.parseInt(userCookie.getValue()); if (userId != null) { user = cmsUserMng.findById(userId); } } if (user != null) { CmsUtils.setUser(request, user); } return true;
2 0
- jeecms框架单点登录功能的实现
- 通过java监听器实现简单的单点登录功能(基于SSH2框架)
- Java 实现单点登录功能
- 单点登录的实现
- Java使用cookie实现简单的单点登录功能
- JavaWeb简单的单点登录、验证码校验功能实现
- 使用CAS框架快速实现单点登录
- 单点登录的简单实现
- 单点登录的简单实现
- 单点登录的简单实现
- 单点登录的简单实现
- 学习单点登录的实现
- 单点登录的简单实现
- 单点登录的简单实现
- 单点登录的实现思路
- 【推荐】单点登录的实现
- java单点登录的实现
- 单点登录的简单实现
- 11招教你如何玩转数据库设计(转)
- oracle的导入导出表
- java(29) - 线程详解
- HDU 1022 栈的问题
- Morning Walk - UVa 10596 欧拉回路
- jeecms框架单点登录功能的实现
- UVA201 Squares
- 1008. Elevator (20)
- 输出完数
- 批量插入SQL
- 算法生成太极八卦图
- 限制avd网速
- cocos2d-x 3.0 + lua 开发问题与解决吐槽 - PART 1
- HDU 1021