Android Open Source - androidwisprclient W I S Pr Logger






From Project

Back to project page androidwisprclient.

License

The source code is released under:

GNU General Public License

If you think the Android project androidwisprclient listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * This file is part of FONAccess.//from ww  w  .  j ava  2  s  . co m
 * 
 * FONAccess is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * FONAccess is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with FONAccess. If not, see <http://www.gnu.org/licenses/>.
 */
package com.oakley.fon.logger;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;

import org.xml.sax.SAXException;

import android.util.Log;

import com.oakley.fon.handler.WISPrInfoHandler;
import com.oakley.fon.handler.WISPrResponseHandler;
import com.oakley.fon.util.FONUtils;
import com.oakley.fon.util.HttpResult;
import com.oakley.fon.util.HttpUtils;
import com.oakley.fon.util.WISPrConstants;
import com.oakley.fon.util.WISPrUtil;

public class WISPrLogger implements WebLogger {

  private static final String TAG = WISPrLogger.class.getName();

  private static final String DEFAULT_LOGOFF_URL = "http://192.168.182.1:3990/logoff";

  protected String userParam = "UserName";

  protected String passwordParam = "Password";

  public LoggerResult login(String user, String password) {
    LoggerResult res = new LoggerResult(WISPrConstants.WISPR_RESPONSE_CODE_INTERNAL_ERROR, null);
    try {
      HttpResult httpResult = HttpUtils.getUrl(BLOCKED_URL);
      String blockedUrlText = httpResult.getContent();
      if (!blockedUrlText.equalsIgnoreCase(CONNECTED)) {
        String WISPrXML = WISPrUtil.getWISPrXML(blockedUrlText);
        if (WISPrXML != null) {
          // Log.d(TAG, "XML Found:" + WISPrXML);
          WISPrInfoHandler wisprInfo = new WISPrInfoHandler();
          android.util.Xml.parse(WISPrXML, wisprInfo);

          if (wisprInfo.getMessageType().equals(WISPrConstants.WISPR_MESSAGE_TYPE_INITIAL)
              && wisprInfo.getResponseCode().equals(WISPrConstants.WISPR_RESPONSE_CODE_NO_ERROR)) {
            res = tryToLogin(user, password, wisprInfo);
          }
        } else {
          // Log.d(TAG, "XML NOT FOUND : " + blockedUrlText);
          res = new LoggerResult(WISPrConstants.WISPR_NOT_PRESENT, null);
        }
      } else {
        res = new LoggerResult(WISPrConstants.ALREADY_CONNECTED, DEFAULT_LOGOFF_URL);
      }
    } catch (Exception e) {
      Log.e(TAG, "Error trying to log", e);
      res = new LoggerResult(WISPrConstants.WISPR_RESPONSE_CODE_INTERNAL_ERROR, null);
    }
    // Log.d(TAG, "WISPR Login Result: " + res);

    return res;
  }

  private LoggerResult tryToLogin(String user, String password, WISPrInfoHandler wisprInfo) throws IOException,
      ParserConfigurationException, FactoryConfigurationError {
    String res = WISPrConstants.WISPR_RESPONSE_CODE_INTERNAL_ERROR;
    String logOffUrl = null;
    String targetURL = wisprInfo.getLoginURL();
    if (FONUtils.isSafeUrl(targetURL)) {
      Log.d(TAG, "Trying to Log " + targetURL);
      Map<String, String> data = new HashMap<String, String>();
      data.put(userParam, user);
      data.put(passwordParam, password);

      String htmlResponse = HttpUtils.getUrlByPost(targetURL, data).getContent();
      // Log.d(TAG, "HTML Reponse:" + htmlResponse);
      if (htmlResponse != null) {
        String response = WISPrUtil.getWISPrXML(htmlResponse);
        if (response != null) {
          // Log.d(TAG, "WISPr response:" + response);
          WISPrResponseHandler wrh = new WISPrResponseHandler();
          try {
            android.util.Xml.parse(response, wrh);
            res = wrh.getResponseCode();
            logOffUrl = wrh.getLogoffURL();
          } catch (SAXException saxe) {
            Log.e(TAG, saxe.getMessage());
            res = WISPrConstants.WISPR_NOT_PRESENT;
          }
        } else {
          // Log.d(TAG, "Response is null");
          res = WISPrConstants.WISPR_NOT_PRESENT;
        }
      }
    } else {
      Log.e(TAG, "Not safe URL:" + targetURL);
    }

    // If we dont find the WISPR Response or we cannot parse it, we check if we have connection
    // (some times happens)
    if (res.equals(WISPrConstants.WISPR_NOT_PRESENT)) {
      if (FONUtils.haveConnection()) {
        res = WISPrConstants.WISPR_RESPONSE_CODE_LOGIN_SUCCEEDED;
        logOffUrl = DEFAULT_LOGOFF_URL;
      }
    }

    return new LoggerResult(res, logOffUrl);
  }
}




Java Source Code List

com.oakley.fon.AndroidWISPr.java
com.oakley.fon.LogOffService.java
com.oakley.fon.NetworkConnectivityReceiver.java
com.oakley.fon.NetworkScanReceiver.java
com.oakley.fon.NotificationCleaningService.java
com.oakley.fon.PreferencesAdvanced.java
com.oakley.fon.WISPrLoggerService.java
com.oakley.fon.handler.WISPrInfoHandler.java
com.oakley.fon.handler.WISPrResponseHandler.java
com.oakley.fon.logger.BTFonLogger.java
com.oakley.fon.logger.HTTPLogger.java
com.oakley.fon.logger.LivedoorLogger.java
com.oakley.fon.logger.LoggerResult.java
com.oakley.fon.logger.NeufLogger.java
com.oakley.fon.logger.SimpleHTTPLogger.java
com.oakley.fon.logger.WISPrLogger.java
com.oakley.fon.logger.WebLogger.java
com.oakley.fon.util.BackupAgentHelperWrapper.java
com.oakley.fon.util.BackupAgent.java
com.oakley.fon.util.FONUtils.java
com.oakley.fon.util.HttpResult.java
com.oakley.fon.util.HttpUtils.java
com.oakley.fon.util.LogRedirectHandler.java
com.oakley.fon.util.RemoveHttpsRedirectHandler.java
com.oakley.fon.util.Utils.java
com.oakley.fon.util.WISPrConstants.java
com.oakley.fon.util.WISPrUtil.java