中国教育和科研计算机网
EDU首页 |  中国教育 |   高校科技 |   教育信息化 |   CERNET
教育信息化

资讯 | 专题 会议 观点 专栏 访谈 企业 产品 CIO 技术 校园信息化 下一代互联网 IPv6视频课堂

中国教育网 > 教育信息化
您现在的位置: EDU首页 > 教育信息化 > 集成应用 > 基础应用 > 数字图书馆
构建高校图书馆远程访问系统(二)
http://www.edu.cn   2011-10-28 中国教育网络 作者:凌征强

字体选择:【大】 【中】 【小】

  关键代码片段如下:

  //根据读者输入的用户ID找出对应的User,并判断密码是否正确
  User user = LoginProviders.getInstance().Login(userId, password);
  /*根据用户对象找对应用户组,以及对用户组能够授权访问的
  资源*/
  UserGroup group = UserGroup.loadById(con, user.getUsergroupid());
  ArrayList accRules = AccRule.LoadByGroupId(con, group.
  getUsergroupid());
  if(accRules == null) throw new Exception(“该用户无可访问资源”);
  //根据用户、用户组和授权访问的访问对象组创建用户会话
  SessionItem item = UsersPool.getInstance().addUser(user, group,
  accRules, ipAddress);
  request.getSession().setAttribute(“SessionItem”, item);
  //创建Cookie
  Cookie cookie = new Cookie(“JSESSIONID”, request.getSession
  ().getId());
  cookie.setMaxAge(0x57e40);
  cookie.setPath(“/”);
  //将Cookie返回到浏览器端
  response.addCookie(cookie);
  //导航到可访问数字资源清单页面
  response.sendRedirect(“welcome.do”);

  2.URL重写及跨域名Cookie技术实现

  URL重写是采用“组合映射”的URL重写策略来自动完成访问目标与代理服务器间的“映射”关系,从而无缝、透明地将用户请求转向实际的数字资源访问服务器请求。具体实现是对网页数据进行筛选过滤,将用户网页上的所有链接地址,做Cookie转绑处理和URL重写,重写为对应的授权访问服务器的主机URL,这样用户的所有访问都可以通过授权访问系统实现。

  具体实现机制是当用户登录图书馆远程访问系统进入数字资源清单显示页面之后,选择某一数字资源访问时,生成类似如下方式的URL请求:

  http://xxxx/Authentication/rewriter/cnki

  URL重写请求对象RewriterServlet接受到这个请求后创建对象Dispatcher,Dispatcher通过对象HttpRequestParser解析请求的URL字符串http://xxxx/Authentication/rewriter/cnki/,从中解析出“cnki”这个访问对象名称,再根据这个对象名称找出对应的访问对象ElecCfg,根据ElecCfg中配置的访问对象服务器域名或IP 和对应的端口,构造需要重写的数字资源访问URL,然后通过对象HttpURLConnection模拟创建对这个URL 的请求,并且读者访问提交的Cookie和其他查询条件(等同于是读者在AuthClient这个授权访问服务器上通过浏览器访问数字资源),然后将请求返回的结果经过处理再返回给读者作为请求的响应。

  关键代码简化如下:

  //获取读者浏览器提交的Cookie
  Cookie cookies[] = request.getCookies();
  cookieBinder.AddCookies(cookie);
  //创建对数字资源访问的Connection,实现URL重写
  connection = (HttpURLConnection)url.openConnection();
  connection.setInstanceFollowRedirects(false);
  //设置读者请求相关参数或条件等
  connection.setRequestMethod(request.getMethod());
  //进行Cookie转绑
  connection.setRequestProperty(“Cookie”, cookieBinder.
  getRequestCookieHeader());

  3.其他主要功能及关键技术实现

  本系统除实现以上两个重要功能以外,还要实现用户角色与用户分组、访问对象安全控制策略,灵活授权与流量控制,多网络接入,流量分析与统计,用户在线跟踪;数据批量处理等主要功能;另外还要从数据安全和访问速度方面针对系统进行改善,实现基于Java的数字签名和SSL协议的结合,实现安全访问、负载均衡、短信验证码等关键技术,限于篇幅原因,不在此详细赘述。

  本文通过对适用于高校图书馆建立远程访问系统的多种实现技术和安全技术的研究,选择国际上主流的URL重写及跨域名Cookie技术,结合多种技术作为远程访问系统的主要实现方式。根据系统设计,运用UML建模语言,对系统进行用例分析、行为建模和结构建模。采用基于B/S模式的三层体系解决方案,借助于Web浏览器,实现了统一认证和单点登录、URL重写及跨域名Cookie等系统主要功能及相关关键技术实现。

  (作者单位为广东外语艺术职业学院图书馆)

页面功能 【打印】 【关闭】 【我有话说

MOOC风暴来袭

版权所有:中国教育和科研计算机网网络中心 CERNIC,CERNET,京ICP备15006448号-16,京网文[2017]10376-1180号

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com