package org.sinrel.engine.actions; import java.net.URLEncoder; import org.sinrel.engine.Engine; import org.sinrel.engine.library.NetManager; import org.sinrel.engine.library.cryption.AES; public class DefaultAuthBehavior implements AuthBehavior { public AuthData auth(Engine engine, String login, String pass) { AuthData ret = new AuthData(login, null, AuthResult.BAD_CONNECTION); try { String data = "action=auth"; data += "&login=" + URLEncoder.encode( AES.encrypt( login ), "UTF-8"); data += "&pass=" + URLEncoder.encode( AES.encrypt( pass ), "UTF-8"); String answer = NetManager.sendPostRequest( NetManager.getEngineLink( engine ), data ); if (engine.isDebug()) { System.out.println(answer); } String[] answerParts = answer.split("<:>"); if(answerParts.length > 3) return ret; if ("OK".equals(answerParts[0])) { ret.setSession( AES.decrypt( answerParts[1] ) ); ret.setToken( AES.decrypt( answerParts[2] ) ); ret.setResult( AuthResult.OK ); } else ret.setResult( AuthResult.valueOf( answer.trim() ) ); } catch (Exception e) { e.printStackTrace(); } return ret; } }