首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

用cookie兑现简单的单点登录功能

2012-07-27 
用cookie实现简单的单点登录功能看到篇博文,是关于单点登录的。public class UserFilter implements Filter

用cookie实现简单的单点登录功能
看到篇博文,是关于单点登录的。
public class UserFilter implements Filter {private static String loginUrl = "";public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest) request;HttpServletResponse resp = (HttpServletResponse) response;if (isCookieLogined(req)) {chain.doFilter(request, response);} else {String fromUrl = req.getRequestURL().toString();resp.sendRedirect(loginUrl + "?fromUrl=" + fromUrl);}}public void init(FilterConfig filterConfig) throws ServletException {loginUrl = filterConfig.getServletContext().getInitParameter("loginUrl");}private boolean isCookieLogined(HttpServletRequest req) {Cookie[] cookies = req.getCookies();if(cookies!=null){for (Cookie cookie : cookies) {if (cookie.getName().equals("user")&&cookie.getValue()!=null) {//TODO:此处应该调用auth的cookie验证方法return true;}}}return false;}}
登录验证系统的登录代码

public class LoginServlet extends HttpServlet {private static final long serialVersionUID = -8212504322196762878L;private static ConcurrentMap<String, String> userMap = new ConcurrentHashMap<String, String>();public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String fromUrl = request.getParameter("fromUrl");request.setAttribute("fromUrl", fromUrl);request.getRequestDispatcher("index.jsp").forward(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String user = request.getParameter("user");if(this.isRegister(user)){this.saveCookie(user, response);String fromUrl = request.getParameter("fromUrl");response.sendRedirect(fromUrl);}}@Override/** * 初始化数据 */public void init() throws ServletException {userMap.put("cevin", "cevin");userMap.put("aki", "aki");}private boolean isRegister(String user){if(userMap.get(user)!=null){return true;}return false;}private void saveCookie(String user, HttpServletResponse response){Cookie cookie = new Cookie(CommonUtils.COOKIE_USER, user);cookie.setDomain(getServletContext().getInitParameter("domain"));cookie.setMaxAge(Integer.parseInt(getServletContext().getInitParameter("cookieLife")));cookie.setPath("/");response.addCookie(cookie);}}

热点排行