• 美文
  • 文章
  • 散文
  • 日记
  • 诗歌
  • 小说
  • 故事
  • 句子
  • 作文
  • 签名
  • 祝福语
  • 情书
  • 范文
  • 读后感
  • 文学百科
  • 当前位置: 柠檬阅读网 > 范文 > 正文

    使用HttpClient实现基于WEB的第三方登录验证:Java第三方登录接口验证

    时间:2019-05-07 03:32:05 来源:柠檬阅读网 本文已影响 柠檬阅读网手机站

      摘要:WEB应用经常需要用户登录才能进行操作,这要求必须先是其已注册用户。但有些情况下希望的用户只限于某个第三方网站已有的合法用户。如果第三方网站提供用户数据库或者诸如WEBService类接口,非常容易实现,否则就需要新的解决办法。HttpClient是一个开源的组件,实现了完整的WEB客户端编程能力,可以通过HttpClient模拟用户向第三方网站提交用户名密码等验证信息,然后根据返回的登录结果页面内容中是否包含相关的关键字来判断用户是否合法。
      关键词:HttpClient;java;登陆验证
      中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)07-2779-02
      Third-party Login Authentication with HttpClient Based WEB
      ZHANG Tie-tou1,MA Li-xia2
      (1.Henan Polytechnic Department of Information Engineering, Zhengzhou 450046, China; 2. Henan Star Hi-Tech Company Limited, Zhengzhou 450001, China)
      Abstract: WEB applications often require a user to log in order to operate, so that this user must be registered before. But in some cases the user should be a legitimate user of a third-party websites. If the third party website to provide database or interfaces such as WebService class, it is easy to implement, otherwise new solutions should be resolved. HttpClient is an open-source components to achieve a complete Web client-side programming capabilities, user name, passwords and other authentication information is submitted through the HttpClient simulation users to third-party websites, and then return results of the login page content words to determine whether the user is legitimate. Key words: HttpClient; java; login authentication
      一般的情况下我们都是使用IE或者Firefox等浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。但是有时我们需要通过程序来模拟这种操作,比如用户在我们的网站输入用户名密码等验证信息,我们的WEB服务器接收到验证信息后模拟用户把验证信息提交给第三方网站的登录验证页面,根据第三方网站返回的验证结果页面中的关键字可以判断用户是否是允许的用户。甚至我们可以在用户登录成功后访问第三方网站的其它授权保护页面提取我们需要的信息为我们网站所用。该文以一个论文选题系统的登录验证为例来说明通过HttpClient组件来实现基于WEB的第三方验证。
       1关键技术
      1.1 HttpClient
      HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。下面列出了HttpClient提供的主要的功能:
      1)实现了所有HTTP的方法(GET、POST、PUT、HEAD等);
      2)支持自动转向;
      3)支持HTTPS协议;
      4)支持代理服务器等。
      HttpClient的最新版本可以在http://hc.省略/downloads.cgi下载到。
      1.2正则表达式
      正则表达式是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。正则表达式由一些普通字符和一些元字符(meta characters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。
      通过使用正则表达式我们可以非常方便的判断第三方网站返回的页面中是否有我们需要的关键字或者从第三方网站的某个页面摘取我们需要的信息。
      2系统设计与实现
      论文选题系统要求是我校在校学生才能进入执行选题操作,所有的学生都具有教务系统的账号和密码,是否是我校在校学生可以通过登录教务系统来验证。并且教务系统中有学生档案页面,通过登录后即可访问,在档案页面中有论文选题需要的所有学生信息比如姓名、班级等。我们可以通过教务系统这个第三方网站做论文系统的登录验证,过程如下:
      1)论文选题WEB服务器接收学生在本系统登录界面输入的账号和密码等登陆信息;
      2)论文选题服务器使用HttpClient组件模拟用户向教务系统提交第1步接收到的登录信息;
      3)论文选题服务器接收HttpClient组件提交后教务系统返回的登录结果页面;
      4)使用字符串操作判断上一步中返回的登录结果页面中有没有表明登录成功的关键字(如“登录成功,欢迎进入”),如果有此关键字则继续进行下一步,如果没有则说明学生输入的账号和密码等信息有误,提示学生重新输入并返回第1步;
      5)论文选题服务器模拟用户登录教务系统成功,继续访问教务系统的学生档案页面,通过正则表达式摘取出姓名班级等论文选题系统需要的信息。
      6)在论文选题系统中记录学生姓名班级等信息并允许学生执行论文选题等后续操作。
      关键代码如下:
      String name=request.getParameter("name");//取得学生在论文选题系统登录界面输入的用户名String password=request.getParameter("password");//取得学生输入的密码String url="http://jwxt.xxx.省略/loginverfy.aspx";//教务系统登录验证页面地址HttpClient client = new HttpClient();//实例化HttpClient对象PostMethod post = new PostMethod( url );//使用post方法提交
      NameValuePair name = new NameValuePair( "name" , name );//根据学生在论文选题系统登录界面输入的登陆信息构造名值对NameValuePair pass = new NameValuePair( "password" , password );
      post.setRequestBody( new NameValuePair[]{name,pass});//根据名值对构造对教务系统的请求内容int status = client.executeMethod(post);//执行post方法,向教务系统发送登陆请求String resultBody=post.getResponseBodyAsString();//取得登陆验证结果页面源文件字符串boolean isSuccess=resultBody.indexOf("登录成功关键字")>=0;//判断登录验证返回页面中是否包含登录成功的关键字,可以提前使用浏览器直接登录来观察//继续访问其他页面post.省略pile(regex);Matcher m = p.matcher(resultBody); //使用正则表达式对档案页面字符串进行匹配String name=null;if(m.find()){
      name= m.group();//取得档案页面返回的学生姓名
      }//同法继续取得班级等信息
      3结束语
      该文探讨了通过Java使用HttpClient模拟用户提交登录信息到第三方网站,根据第三方网站返回的验证结果界面中是否包含相关关键字来判断用户是否是合法用户,实现了利用第三方网站进行登录验证,并对使用正则表达式摘取第三方网站页面中信息的方法进行了简单介绍。
      参考文献:
      [1] Developer Documentation[EB/OL].http://hc.省略/dev-docs.html.
      [2]发华金,樟洪陈. HttpClient入门[EB/OL]. http://www.省略/developerworks/cn/opensource/os-httpclient/.
      [3] Goyvaerts J, Levithan S.正则表达式经典实例[M].郭耀,译.北京:人民邮电出版社,2010.

    相关热词搜索: 第三方 验证 登录 HttpClient

    • 文学百科
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章