From 944e5f6b98cc741295ca796a9381157a0961a01e Mon Sep 17 00:00:00 2001 From: Lathifah Nurrahmah <13515046@std.stei.itb.ac.id> Date: Sat, 18 Nov 2017 10:38:12 +0700 Subject: [PATCH] added soap etc --- .gitignore | 3 +- .../src/java/validate/Register.java | 26 +-- IdentityService/src/java/validate/SignIn.java | 6 +- .../src/java/validate/ValidateToken.java | 147 +++++++++++++-- .../nbproject/genfiles.properties | 4 +- OjekOnlineWebservice/nbproject/jax-ws.xml | 6 + .../nbproject/jaxws-build.xml | 16 ++ .../nbproject/project.properties | 1 - OjekOnlineWebservice/nbproject/project.xml | 4 +- .../src/java/Location/Location.java | 141 ++++++++++++++ .../src/java/Location/LocationObj.java | 37 ++++ .../src/java/account/Account.java | 174 ++++++++++++++++++ .../src/java/account/AccountObj.java | 79 ++++++++ .../src/java/history/History.java | 88 ++++++++- WebApp/catalog.xml | 9 + WebApp/nbproject/build-impl.xml | 3 +- WebApp/nbproject/genfiles.properties | 7 +- WebApp/nbproject/jax-ws.xml | 38 ++++ WebApp/nbproject/jaxws-build.xml | 46 +++++ WebApp/nbproject/project.properties | 1 - WebApp/nbproject/project.xml | 9 +- .../OjekOnlineWebservice/Account.wsdl | 55 ++++++ .../OjekOnlineWebservice/Account.xsd_1.xsd | 47 +++++ WebApp/web/WEB-INF/jax-ws-catalog.xml | 9 + .../OjekOnlineWebservice/Account.wsdl | 55 ++++++ .../OjekOnlineWebservice/Account.xsd_1.xsd | 47 +++++ WebApp/web/index.jsp | 11 +- WebApp/web/profile.jsp | 46 ++++- WebApp/web/register.jsp | 6 +- data/derby.log | 1 - 30 files changed, 1064 insertions(+), 58 deletions(-) create mode 100644 OjekOnlineWebservice/src/java/Location/Location.java create mode 100644 OjekOnlineWebservice/src/java/Location/LocationObj.java create mode 100644 OjekOnlineWebservice/src/java/account/Account.java create mode 100644 OjekOnlineWebservice/src/java/account/AccountObj.java create mode 100644 WebApp/catalog.xml create mode 100644 WebApp/nbproject/jax-ws.xml create mode 100644 WebApp/nbproject/jaxws-build.xml create mode 100644 WebApp/src/conf/xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl create mode 100644 WebApp/src/conf/xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.xsd_1.xsd create mode 100644 WebApp/web/WEB-INF/jax-ws-catalog.xml create mode 100644 WebApp/web/WEB-INF/wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl create mode 100644 WebApp/web/WEB-INF/wsdl/localhost_8002/OjekOnlineWebservice/Account.xsd_1.xsd diff --git a/.gitignore b/.gitignore index c9b0373..0fe93cc 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ /WebApp/build/ /IdentityService/build/ /OjekOnlineWebservice/build/ -/IdentityService/dist/ \ No newline at end of file +/IdentityService/dist/ +/OjekOnlineWebservice/dist/ \ No newline at end of file diff --git a/IdentityService/src/java/validate/Register.java b/IdentityService/src/java/validate/Register.java index 638cc8c..ab1a29e 100644 --- a/IdentityService/src/java/validate/Register.java +++ b/IdentityService/src/java/validate/Register.java @@ -52,7 +52,7 @@ public class Register extends HttpServlet { String email = request.getParameter("email"); String password = request.getParameter("password"); String phone = request.getParameter("phone"); - response.getWriter().write(request.getParameter("name")); + //response.getWriter().write(request.getParameter("name")); try { Class.forName("com.mysql.jdbc.Driver"); @@ -71,11 +71,17 @@ public class Register extends HttpServlet { dbStatement.setString(1, username); dbStatement.setString(2, email); JSONObject json = new JSONObject(); - try ( /* Get every data returned by SQL query */ ResultSet rs = dbStatement.executeQuery()) { - if (rs.next()) { + /* Get every data returned by SQL query */ + ResultSet rs = dbStatement.executeQuery(); + if (rs.next() || username == null || username.isEmpty()) { json.put("res_code", -1); + json.put("id",0); + json.put("fullname", ""); + json.put("username", ""); + json.put("email", ""); + json.put("phone_no", ""); + json.put("token", ""); } else { - String sqlInsert = "INSERT INTO account(username,email,fullname,password,phone_no,profile_pict) VALUES(?,?,?,?,?,NULL)"; PreparedStatement dbStatementInputToken = conn.prepareStatement(sqlInsert); dbStatementInputToken.setString(1, username); @@ -120,7 +126,7 @@ public class Register extends HttpServlet { String time_expired = timeFormat.format(dNow); String date_expired = dateFormat.format(dNow); String sqlInputToken; - sqlInputToken = "INSERT INTO token(id_account,token,date_expired,time_expired) VALUES(?,?,?,?)"; + sqlInputToken = "INSERT INTO token(id_account,token,date_expire,time_expire) VALUES(?,?,?,?)"; PreparedStatement dbStatementInputToken1 = conn.prepareStatement(sqlInputToken); dbStatementInputToken1.setInt(1, rs2.getInt("id")); dbStatementInputToken1.setString(2, token); @@ -136,14 +142,12 @@ public class Register extends HttpServlet { json.put("phone_no", phone); json.put("token", token); - } - - response.setContentType("application/json"); - response.getWriter().write(json.toString()); - } + } + response.setContentType("application/json"); + response.getWriter().write(json.toString()); stmt.close(); conn.close(); - } + } } catch (SQLException | IOException ex) { } diff --git a/IdentityService/src/java/validate/SignIn.java b/IdentityService/src/java/validate/SignIn.java index 6336708..c66378e 100644 --- a/IdentityService/src/java/validate/SignIn.java +++ b/IdentityService/src/java/validate/SignIn.java @@ -102,6 +102,7 @@ public class SignIn extends HttpServlet { json.put("email",rs.getString("email")); json.put("phone_no",rs.getString("phone_no")); json.put("token",token); + //out.println(json.toString()); String sqlInputToken; sqlInputToken = "INSERT INTO token(token,id,date_expire,time_expire) VALUES(?,?,?,?)"; PreparedStatement dbStatementInputToken = conn.prepareStatement(sqlInputToken); @@ -110,8 +111,6 @@ public class SignIn extends HttpServlet { dbStatementInputToken.setString(3, date_expired); dbStatementInputToken.setString(4, time_expired); dbStatementInputToken.executeUpdate(); - - } else { boolean h = true; if (!h) { @@ -129,7 +128,6 @@ public class SignIn extends HttpServlet { } } /* Get every data returned by SQL query */ - response.setContentType("application/json"); response.getWriter().write(json.toString()); rs.close(); @@ -138,7 +136,7 @@ public class SignIn extends HttpServlet { } } catch (SQLException | IOException ex) { - } + } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> diff --git a/IdentityService/src/java/validate/ValidateToken.java b/IdentityService/src/java/validate/ValidateToken.java index 669ea49..e154ce7 100644 --- a/IdentityService/src/java/validate/ValidateToken.java +++ b/IdentityService/src/java/validate/ValidateToken.java @@ -45,30 +45,143 @@ public class ValidateToken extends HttpServlet { */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - response.setContentType("text/html;charset=UTF-8"); + response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { - java.lang.String token = request.getParameter("token"); + String token = request.getParameter("token"); - Class.forName("com.mysql.jdbc.Driver"); + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException ex) { + Logger.getLogger(SignIn.class.getName()).log(Level.SEVERE, null, ex); + } try ( Connection conn = DriverManager.getConnection( - "jdbc:mysql://localhost:3306/Account?zeroDateTimeBehavior=convertToNull", + "jdbc:mysql://localhost:3306/account?zeroDateTimeBehavior=convertToNull", "root", ""); Statement stmt = conn.createStatement()) { String sql; - sql = "SELECT * FROM account NATURAL JOIN token WHERE id = id_account and token = ?"; + sql = "SELECT * FROM account NATURAL JOIN token WHERE token = ?"; PreparedStatement dbStatement = conn.prepareStatement(sql); dbStatement.setString(1, token); + JSONObject json = new JSONObject(); /* Get every data returned by SQL query */ ResultSet rs = dbStatement.executeQuery(); + if (rs.next()) { + Date dateNow = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss"); + String date = rs.getString("date_expire"); + String time = rs.getString("time_expire"); + boolean expires; + String datetime = date + " " + time; + Date dateExpireStart = null; + try { + dateExpireStart = dateFormat.parse(datetime); + } catch (ParseException ex) { + Logger.getLogger(ValidateToken.class.getName()).log(Level.SEVERE, null, ex); + } + long msDiff = dateNow.getTime() - dateExpireStart.getTime(); + if (msDiff > 900000) { + SecureRandom random = new SecureRandom(); + String token1 = new BigInteger(130, random).toString(32); + + String sqlCek; + boolean ulang = true; + PreparedStatement dbStatementCek; + + //while (ulang) { + //token1 = new BigInteger(130, random).toString(32); + // sqlCek = "SELECT * FROM token WHERE token = ?"; + // dbStatementCek = conn.prepareStatement(sqlCek); + // dbStatementCek.setString(1, token); + // ResultSet rsCek = dbStatementCek.executeQuery(); + // if (rsCek.next()) { + // ulang = true; + // } else { + // ulang = false; + // } + //} + + + json.put("id",rs.getInt("id")); + json.put("fullname",rs.getString("fullname")); + json.put("username",rs.getString("username")); + json.put("email",rs.getString("email")); + json.put("phone_no",rs.getString("phone_no")); + json.put("token", token1); + json.put("validate", 2); + + String sqlDeleteToken; + sqlDeleteToken = "DELETE FROM token WHERE token.token = ?"; + PreparedStatement dbStatementDeleteToken = conn.prepareStatement(sqlDeleteToken); + dbStatementDeleteToken.setString(1, token); + dbStatementDeleteToken.executeUpdate(); + + //out.println(json.toString()); + Date dNow = new Date(); + SimpleDateFormat dateFormat1 = new SimpleDateFormat ("yyyy-MM-dd"); + SimpleDateFormat timeFormat = new SimpleDateFormat ("HH:mm:ss"); + String time_expired = timeFormat.format(dNow); + String date_expired = dateFormat1.format(dNow); + String sqlInputToken; + sqlInputToken = "INSERT INTO token(token,id,date_expire,time_expire) VALUES (?,?,?,?)"; + PreparedStatement dbStatementInputToken = conn.prepareStatement(sqlInputToken); + dbStatementInputToken.setString(1, token1); + dbStatementInputToken.setInt(2, rs.getInt("id")); + dbStatementInputToken.setString(3, date_expired); + dbStatementInputToken.setString(4, time_expired); + dbStatementInputToken.executeUpdate(); + } else { + json.put("id",rs.getInt("id")); + json.put("fullname",rs.getString("fullname")); + json.put("username",rs.getString("username")); + json.put("email",rs.getString("email")); + json.put("phone_no",rs.getString("phone_no")); + json.put("token",""); + json.put("validate", 1); + } + } else { + json.put("id",0); + json.put("fullname",""); + json.put("username",""); + json.put("email",""); + json.put("phone_no",""); + json.put("token", ""); + json.put("validate",3); + } /* Get every data returned by SQL query */ + response.setContentType("application/json"); + response.getWriter().write(json.toString()); + rs.close(); + stmt.close(); + conn.close(); + } + } catch (SQLException | IOException ex) { + + } + /*response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + java.lang.String token = request.getParameter("token"); + + Class.forName("com.mysql.jdbc.Driver"); + try + ( Connection conn = DriverManager.getConnection( + "jdbc:mysql://localhost:3306/account?zeroDateTimeBehavior=convertToNull", + "root", + ""); + Statement stmt = conn.createStatement()) { + String sql; + sql = "SELECT * FROM account NATURAL JOIN token WHERE account.id = token.id and token = ?"; + PreparedStatement dbStatement = conn.prepareStatement(sql); + dbStatement.setString(1, token); + /* Get every data returned by SQL query + ResultSet rs = dbStatement.executeQuery(); + /* Get every data returned by SQL query JSONObject json = new JSONObject(); boolean expires = false; - /* Get every data returned by SQL query */ + /* Get every data returned by SQL query Date dateNow = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss"); - if(rs.next()){ String date = rs.getString("date_expired"); String time = rs.getString("time_expired"); @@ -104,13 +217,21 @@ public class ValidateToken extends HttpServlet { } } + String sqlDelete; + sqlDelete = "DELETE FROM token WHERE token = ?"; + PreparedStatement dbStatementDelete = conn.prepareStatement(sqlDelete,Statement.RETURN_GENERATED_KEYS); + dbStatementDelete.setString(1, token); + + /* Get every data returned by SQL query + int rsDelete = dbStatementDelete.executeUpdate(); + Date dNow = new Date(); SimpleDateFormat dateFormatExpires = new SimpleDateFormat ("yyyy-MM-dd"); SimpleDateFormat timeFormatExpires = new SimpleDateFormat ("HH:mm:ss"); String time_expired = timeFormatExpires.format(dNow); String date_expired = dateFormatExpires.format(dNow); String sqlInputToken; - sqlInputToken = "INSERT INTO token(id_account,token,date_expired,time_expired) VALUES(?,?,?,?)"; + sqlInputToken = "INSERT INTO token(id_account,token,date_expire,time_expire) VALUES(?,?,?,?)"; PreparedStatement dbStatementInputToken = conn.prepareStatement(sqlInputToken); dbStatementInputToken.setInt(1, rs.getInt("id")); dbStatementInputToken.setString(2, tokenExpires); @@ -118,14 +239,6 @@ public class ValidateToken extends HttpServlet { dbStatementInputToken.setString(4, time_expired); int rsInputToken = dbStatementInputToken.executeUpdate(); - String sqlDelete; - sqlDelete = "DELETE FROM token WHERE token = ?"; - PreparedStatement dbStatementDelete = conn.prepareStatement(sqlDelete,Statement.RETURN_GENERATED_KEYS); - dbStatementDelete.setString(1, token); - - /* Get every data returned by SQL query */ - int rsDelete = dbStatementDelete.executeUpdate(); - json.put("id",rs.getInt("id")); json.put("fullname",rs.getString("fullname")); json.put("username",rs.getString("username")); @@ -160,7 +273,7 @@ public class ValidateToken extends HttpServlet { } } catch (ClassNotFoundException | SQLException ex) { - } + } */ } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> diff --git a/OjekOnlineWebservice/nbproject/genfiles.properties b/OjekOnlineWebservice/nbproject/genfiles.properties index 23e3766..0cea5e9 100644 --- a/OjekOnlineWebservice/nbproject/genfiles.properties +++ b/OjekOnlineWebservice/nbproject/genfiles.properties @@ -1,9 +1,9 @@ -build.xml.data.CRC32=c15f4ce0 +build.xml.data.CRC32=cb43e7dd build.xml.script.CRC32=4d0c4679 build.xml.stylesheet.CRC32=651128d4@1.77.1.1 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=c15f4ce0 +nbproject/build-impl.xml.data.CRC32=cb43e7dd nbproject/build-impl.xml.script.CRC32=35f43f9c nbproject/build-impl.xml.stylesheet.CRC32=99ea4b56@1.77.1.1 nbproject/jaxws-build.xml.stylesheet.CRC32=6608c2cf diff --git a/OjekOnlineWebservice/nbproject/jax-ws.xml b/OjekOnlineWebservice/nbproject/jax-ws.xml index c2918ef..08cec30 100644 --- a/OjekOnlineWebservice/nbproject/jax-ws.xml +++ b/OjekOnlineWebservice/nbproject/jax-ws.xml @@ -4,6 +4,12 @@ <service name="History"> <implementation-class>history.History</implementation-class> </service> + <service name="Location"> + <implementation-class>Location.Location</implementation-class> + </service> + <service name="Account"> + <implementation-class>account.Account</implementation-class> + </service> </services> <clients/> </jax-ws> diff --git a/OjekOnlineWebservice/nbproject/jaxws-build.xml b/OjekOnlineWebservice/nbproject/jaxws-build.xml index 3562bd3..1eed59b 100644 --- a/OjekOnlineWebservice/nbproject/jaxws-build.xml +++ b/OjekOnlineWebservice/nbproject/jaxws-build.xml @@ -27,6 +27,22 @@ <classpath path="${java.home}/../lib/tools.jar:${build.classes.dir}:${j2ee.platform.wsgen.classpath}:${javac.classpath}"/> </wsgen> </target> + <target name="wsgen-Location" depends="wsgen-init"> + <copy todir="${build.classes.dir}/META-INF"> + <fileset dir="${webinf.dir}" includes="wsit-Location.Location.xml"/> + </copy> + <wsgen sourcedestdir="${build.generated.sources.dir}/jax-ws" resourcedestdir="${build.generated.sources.dir}/jax-ws/resources/" destdir="${build.generated.sources.dir}/jax-ws" verbose="true" keep="true" genwsdl="true" sei="Location.Location" xendorsed="true"> + <classpath path="${java.home}/../lib/tools.jar:${build.classes.dir}:${j2ee.platform.wsgen.classpath}:${javac.classpath}"/> + </wsgen> + </target> + <target name="wsgen-Account" depends="wsgen-init"> + <copy todir="${build.classes.dir}/META-INF"> + <fileset dir="${webinf.dir}" includes="wsit-account.Account.xml"/> + </copy> + <wsgen sourcedestdir="${build.generated.sources.dir}/jax-ws" resourcedestdir="${build.generated.sources.dir}/jax-ws/resources/" destdir="${build.generated.sources.dir}/jax-ws" verbose="true" keep="true" genwsdl="true" sei="account.Account" xendorsed="true"> + <classpath path="${java.home}/../lib/tools.jar:${build.classes.dir}:${j2ee.platform.wsgen.classpath}:${javac.classpath}"/> + </wsgen> + </target> <!-- =================== JAX-WS WSIMPORT SECTION diff --git a/OjekOnlineWebservice/nbproject/project.properties b/OjekOnlineWebservice/nbproject/project.properties index cab92b4..40b5aa4 100644 --- a/OjekOnlineWebservice/nbproject/project.properties +++ b/OjekOnlineWebservice/nbproject/project.properties @@ -70,7 +70,6 @@ javadoc.use=true javadoc.version=false javadoc.windowtitle= lib.dir=${web.docbase.dir}/WEB-INF/lib -no.dependencies=false persistence.xml.dir=${conf.dir} platform.active=default_platform resource.dir=setup diff --git a/OjekOnlineWebservice/nbproject/project.xml b/OjekOnlineWebservice/nbproject/project.xml index 55c5986..e7408d4 100644 --- a/OjekOnlineWebservice/nbproject/project.xml +++ b/OjekOnlineWebservice/nbproject/project.xml @@ -16,10 +16,10 @@ </web-module-libraries> <web-module-additional-libraries/> <source-roots> - <root id="src.dir" name="Source Packages"/> + <root id="src.dir"/> </source-roots> <test-roots> - <root id="test.src.dir" name="Test Packages"/> + <root id="test.src.dir"/> </test-roots> </data> </configuration> diff --git a/OjekOnlineWebservice/src/java/Location/Location.java b/OjekOnlineWebservice/src/java/Location/Location.java new file mode 100644 index 0000000..ee42b13 --- /dev/null +++ b/OjekOnlineWebservice/src/java/Location/Location.java @@ -0,0 +1,141 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package Location; + +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.ProtocolException; +import java.net.URL; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.jws.WebService; +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import org.json.JSONException; +import org.json.JSONObject; +/** + * + * @author raudi + */ +@WebService(serviceName = "Location") +public class Location { + + /** + * Web service operation + * @param sellerID + * @return + */ + @WebMethod(operationName = "listprefloc") + @WebResult(name="Location") + public ArrayList<LocationObj> listprefloc (@WebParam(name = "username") String username) { + ArrayList<LocationObj> listprefloc = new ArrayList<>(); + try { + Class.forName("com.mysql.jdbc.Driver"); + Connection conn = DriverManager.getConnection( + "jdbc:mysql://localhost:3306/ojekonline?zeroDateTimeBehavior=convertToNull", + "root", + ""); + + Statement stmt = conn.createStatement(); + String sql; + sql = "SELECT * FROM preferred_location WHERE username = ?"; + PreparedStatement dbStatement = conn.prepareStatement(sql); + dbStatement.setString(1, username); + /* Get every data returned by SQL query */ + ResultSet rs = dbStatement.executeQuery(); + /* Get every data returned by SQL query */ + int i = 0; + while(rs.next()){ + listprefloc.add(new LocationObj(rs.getString("username"), + rs.getString("location"))); + ++i; + } + rs.close(); + stmt.close(); + conn.close(); + } catch (ClassNotFoundException | SQLException ex) { + Logger.getLogger(Location.class.getName()).log(Level.SEVERE, null, ex); + } + return listprefloc; + } + + /** + * Web service operation + * @param sellerID + * @return + */ + @WebMethod(operationName = "addprefloc") + @WebResult(name="LocationObj") + public void addprefloc (@WebParam(name = "username") String username, + @WebParam(name = "location") String location) { + try { + Class.forName("com.mysql.jdbc.Driver"); + Connection conn = DriverManager.getConnection( + "jdbc:mysql://localhost:3306/ojekonline?zeroDateTimeBehavior=convertToNull", + "root", + ""); + + Statement stmt = conn.createStatement(); + String sql; + sql = "INSERT INTO preferred_location (username, location) VALUES (?, ?)"; + PreparedStatement dbStatement = conn.prepareStatement(sql); + dbStatement.setString(1, username); + dbStatement.setString(2, location); + /* Get every data returned by SQL query */ + ResultSet rs = dbStatement.executeQuery(); + /* Get every data returned by SQL query */ + rs.close(); + stmt.close(); + conn.close(); + } catch (ClassNotFoundException | SQLException ex) { + Logger.getLogger(Location.class.getName()).log(Level.SEVERE, null, ex); + } + } + /** + * Web service operation + * @param sellerID + * @return + */ + @WebMethod(operationName = "delprefloc") + @WebResult(name="LocationObj") + public void delprefloc (@WebParam(name = "username") String username, + @WebParam(name = "location") String location) { + try { + Class.forName("com.mysql.jdbc.Driver"); + Connection conn = DriverManager.getConnection( + "jdbc:mysql://localhost:3306/ojekonline?zeroDateTimeBehavior=convertToNull", + "root", + ""); + + Statement stmt = conn.createStatement(); + String sql; + sql = "DELETE FROM preferred_location WHERE username = ? AND location = ?"; + PreparedStatement dbStatement = conn.prepareStatement(sql); + dbStatement.setString(1, username); + dbStatement.setString(2, location); + /* Get every data returned by SQL query */ + ResultSet rs = dbStatement.executeQuery(); + /* Get every data returned by SQL query */ + rs.close(); + stmt.close(); + conn.close(); + } catch (ClassNotFoundException | SQLException ex) { + Logger.getLogger(Location.class.getName()).log(Level.SEVERE, null, ex); + } + } +} \ No newline at end of file diff --git a/OjekOnlineWebservice/src/java/Location/LocationObj.java b/OjekOnlineWebservice/src/java/Location/LocationObj.java new file mode 100644 index 0000000..7e652d5 --- /dev/null +++ b/OjekOnlineWebservice/src/java/Location/LocationObj.java @@ -0,0 +1,37 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package Location; + +import javax.xml.bind.annotation.XmlElement; + +/** + * + * @author TIFAH06 + */ +public class LocationObj { + @XmlElement(name="username", required=true) + public String username; + @XmlElement(name="location", required=true) + public String location; + + + public LocationObj() { + username = ""; + location = ""; + } + + public LocationObj(String username, String location) { + this.username = username; + this.location = location; + } + + public String getUsername() { + return username; + } + public String getLocation() { + return location; + } +} diff --git a/OjekOnlineWebservice/src/java/account/Account.java b/OjekOnlineWebservice/src/java/account/Account.java new file mode 100644 index 0000000..7d22ed0 --- /dev/null +++ b/OjekOnlineWebservice/src/java/account/Account.java @@ -0,0 +1,174 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package account; + + +import account.AccountObj; +import javax.jws.WebService; +import javax.jws.WebMethod; +import javax.jws.WebParam; +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.ProtocolException; +import java.net.URL; +import org.json.*; + +/** + * + * @author raudi + */ +@WebService(serviceName = "Account") +public class Account { + + /** + * This is a sample web service operation + * @param token + * @return + */ + @WebMethod(operationName = "validate") + public AccountObj validate(@WebParam(name = "token") String token) throws JSONException { + String USER_AGENT = "Mozilla/5.0"; + + String url = "http://localhost:8001/IdentityService/ValidateToken"; + URL obj = null; + try { + obj = new URL(url); + } catch (MalformedURLException ex) { + } + HttpURLConnection con = null; + try { + con = (HttpURLConnection) obj.openConnection(); + } catch (IOException ex) { + + } + + try { + //add reuqest header + con.setRequestMethod("POST"); + } catch (ProtocolException ex) { + + } + con.setRequestProperty("User-Agent", USER_AGENT); + con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); + + String urlParameters = "token="+token; + + // Send post request + con.setDoOutput(true); + DataOutputStream wr = null; + + try { + wr = new DataOutputStream(con.getOutputStream()); + wr.writeBytes(urlParameters); + wr.flush(); + wr.close(); + } catch (IOException ex) { + } + + StringBuffer responsebuff = new StringBuffer(); + try { + int responseCode = con.getResponseCode(); + BufferedReader in = new BufferedReader( + new InputStreamReader(con.getInputStream())); + String inputLine; + + while ((inputLine = in.readLine()) != null) { + responsebuff.append(inputLine); + } + in.close(); + } catch (IOException ex) { + } + + JSONObject JSobjek = new JSONObject(responsebuff.toString()); + //System.out.println(response.toString()); + + AccountObj account = null; + account = new AccountObj((int)JSobjek.get("id"), + (String)JSobjek.get("username"), + (String)JSobjek.get("email"), + (String)JSobjek.get("fullname"), + (String)JSobjek.get("phone_no"), + (String)JSobjek.get("token"), + (int)JSobjek.get("validate")); + return account; + + } + + /** + * This is a sample web service operation + * @param id + * @return + */ + @WebMethod(operationName = "getUsername") + public String getUsername(@WebParam(name = "id") int id) { + String USER_AGENT = "Mozilla/5.0"; + + String url = "http://localhost:8001/IdentityService/GetUsername"; + URL obj = null; + try { + obj = new URL(url); + } catch (MalformedURLException ex) { + } + HttpURLConnection con = null; + try { + con = (HttpURLConnection) obj.openConnection(); + } catch (IOException ex) { + + } + + try { + //add reuqest header + con.setRequestMethod("POST"); + } catch (ProtocolException ex) { + + } + con.setRequestProperty("User-Agent", USER_AGENT); + con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); + + String urlParameters = "id="+id; + + // Send post request + con.setDoOutput(true); + DataOutputStream wr = null; + + try { + wr = new DataOutputStream(con.getOutputStream()); + wr.writeBytes(urlParameters); + wr.flush(); + wr.close(); + } catch (IOException ex) { + } + + StringBuffer response = new StringBuffer(); + try { + int responseCode = con.getResponseCode(); + BufferedReader in = new BufferedReader( + new InputStreamReader(con.getInputStream())); + String inputLine; + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + } catch (IOException ex) { + } + System.out.println(response.toString()); + + String uname = null; + JSONObject JSobjek = null; + try { + JSobjek = new JSONObject(response.toString()); + uname = (String)JSobjek.get("username"); + } catch (JSONException ex) { + } + return uname; + + } +} diff --git a/OjekOnlineWebservice/src/java/account/AccountObj.java b/OjekOnlineWebservice/src/java/account/AccountObj.java new file mode 100644 index 0000000..334cfd5 --- /dev/null +++ b/OjekOnlineWebservice/src/java/account/AccountObj.java @@ -0,0 +1,79 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package account; + +import javax.xml.bind.annotation.XmlElement; + +/** + * + * @author TIFAH06 + */ +public class AccountObj { + @XmlElement(name="id", required=true) + public int id; + @XmlElement(name="username", required=true) + public String username; + @XmlElement(name="email", required=true) + public String email; + @XmlElement(name="fullname", required=true) + public String fullname; + @XmlElement(name="phone_no", required=true) + public String phone_no; + @XmlElement(name="token", required=true) + public String token; + @XmlElement(name="validate", required=true) + public int validate; + + public AccountObj() { + id = 0; + username = ""; + email = ""; + fullname = ""; + phone_no = ""; + token = ""; + validate=-1; + } + + public AccountObj(int id, String username, String email, String fullname, String phone_no, + String token, int validate) { + this.id = id; + this.username = username; + this.email = email; + this.fullname = fullname; + this.phone_no = phone_no; + this.token = token; + this.validate = validate; + } + + public int getID() { + return id; + } + + public String getUsername() { + return username; + } + + public String getEmail() { + return email; + } + + public String getFullname() { + return fullname; + } + + public String getPhoneNo() { + return phone_no; + } + + public String getToken() { + return token; + } + + public int getValidate() { + return validate; + } + +} diff --git a/OjekOnlineWebservice/src/java/history/History.java b/OjekOnlineWebservice/src/java/history/History.java index 48817aa..855c580 100644 --- a/OjekOnlineWebservice/src/java/history/History.java +++ b/OjekOnlineWebservice/src/java/history/History.java @@ -19,7 +19,9 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.logging.Level; import java.util.logging.Logger; import javax.jws.WebService; @@ -32,7 +34,7 @@ import org.json.JSONObject; * * @author raudi */ -@WebService(serviceName = "Items") +@WebService(serviceName = "History") public class History { /** @@ -131,4 +133,88 @@ public class History { return driverhistory; } + @WebMethod(operationName = "addTransaction") + @WebResult(name="HistoryObj") + public void addTransaction (@WebParam(name = "driver_name") String driver_name, + @WebParam(name = "user_name") String user_name, + @WebParam(name = "picking_point") String picking_point, + @WebParam(name = "destination") String destination, + @WebParam(name = "comment") String comment, + @WebParam(name = "rating") int rating) { + ArrayList<HistoryObj> driverhistory = new ArrayList<>(); + try { + Class.forName("com.mysql.jdbc.Driver"); + Connection conn = DriverManager.getConnection( + "jdbc:mysql://localhost:3306/ojekonline?zeroDateTimeBehavior=convertToNull", + "root", + ""); + Statement stmt = conn.createStatement(); + String sql; + Date dNow = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd"); + String pickDate = dateFormat.format(dNow); + String rateString = String.valueOf(rating); + sql = "INSERT INTO transaksi (driver_name, user_name, picking_point, destination," + + "tanggal, comment, rating) VALUES (?, ?, ?, ?, ?, ?, ?)"; + PreparedStatement dbStatement = conn.prepareStatement(sql); + dbStatement.setString(1, driver_name); + dbStatement.setString(2, user_name); + dbStatement.setString(3, picking_point); + dbStatement.setString(4, destination); + dbStatement.setString(5, pickDate); + dbStatement.setString(6, comment); + dbStatement.setString(7, rateString); + /* Get every data returned by SQL query */ + ResultSet rs = dbStatement.executeQuery(); + /* Get every data returned by SQL query */ + rs.close(); + stmt.close(); + conn.close(); + } catch (ClassNotFoundException | SQLException ex) { + Logger.getLogger(History.class.getName()).log(Level.SEVERE, null, ex); + } + } + + @WebMethod(operationName = "hideOrderHistory") + @WebResult(name="HistoryObj") + public void hideOrderHistory (@WebParam(name = "driver_name") String driver_name) { + ArrayList<HistoryObj> driverhistory = new ArrayList<>(); + try { + Class.forName("com.mysql.jdbc.Driver"); + Connection conn = DriverManager.getConnection( + "jdbc:mysql://localhost:3306/ojekonline?zeroDateTimeBehavior=convertToNull", + "root", + ""); + + Statement stmt = conn.createStatement(); + String sql; + sql = "SELECT * FROM transaksi WHERE driver_name = ?"; + PreparedStatement dbStatement = conn.prepareStatement(sql); + dbStatement.setBoolean(1, false); + /* Get every data returned by SQL query */ + ResultSet rs = dbStatement.executeQuery(); + /* Get every data returned by SQL query */ + int i = 0; + while(rs.next()){ + driverhistory.add(new HistoryObj(rs.getInt("id"), + rs.getString("driver_name"), + rs.getString("user_name"), + rs.getString("picking_point"), + rs.getString("destination"), + rs.getString("tanggal"), + rs.getString("comment"), + rs.getInt("rating"), + rs.getBoolean("user_hide"), + rs.getBoolean("driver_hide") + )); + ++i; + } + rs.close(); + stmt.close(); + conn.close(); + } catch (ClassNotFoundException | SQLException ex) { + Logger.getLogger(History.class.getName()).log(Level.SEVERE, null, ex); + } + //return driverhistory; + } } \ No newline at end of file diff --git a/WebApp/catalog.xml b/WebApp/catalog.xml new file mode 100644 index 0000000..d30c66d --- /dev/null +++ b/WebApp/catalog.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system"> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Location?wsdl" uri="src/conf/xml-resources/web-service-references/Location/wsdl/localhost_8002/OjekOnlineWebservice/Location.wsdl"/> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Location?xsd=1" uri="src/conf/xml-resources/web-service-references/Location/wsdl/localhost_8002/OjekOnlineWebservice/Location.xsd_1.xsd"/> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Accounts?wsdl" uri="src/conf/xml-resources/web-service-references/Accounts/wsdl/localhost_8002/OjekOnlineWebservice/Accounts.wsdl"/> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Accounts?xsd=1" uri="src/conf/xml-resources/web-service-references/Accounts/wsdl/localhost_8002/OjekOnlineWebservice/Accounts.xsd_1.xsd"/> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Account?wsdl" uri="src/conf/xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl"/> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Account?xsd=1" uri="src/conf/xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.xsd_1.xsd"/> +</catalog> \ No newline at end of file diff --git a/WebApp/nbproject/build-impl.xml b/WebApp/nbproject/build-impl.xml index 9499320..375c554 100644 --- a/WebApp/nbproject/build-impl.xml +++ b/WebApp/nbproject/build-impl.xml @@ -18,6 +18,7 @@ --> <project xmlns:webproject1="http://www.netbeans.org/ns/web-project/1" xmlns:webproject2="http://www.netbeans.org/ns/web-project/2" xmlns:webproject3="http://www.netbeans.org/ns/web-project/3" basedir=".." default="default" name="WebApp-impl"> + <import file="jaxws-build.xml"/> <import file="ant-deploy.xml"/> <fail message="Please build using Ant 1.7.1 or higher."> <condition> @@ -855,7 +856,7 @@ exists or setup the property manually. For example like this: <target depends="init" if="no.dist.ear.dir" name="deps-module-jar" unless="no.deps"/> <target depends="init" if="dist.ear.dir" name="deps-ear-jar" unless="no.deps"/> <target depends="init, deps-module-jar, deps-ear-jar" name="deps-jar" unless="no.deps"/> - <target depends="init,deps-jar" name="-pre-pre-compile"> + <target depends="init,deps-jar,wsimport-client-generate" name="-pre-pre-compile"> <mkdir dir="${build.classes.dir}"/> </target> <target name="-pre-compile"> diff --git a/WebApp/nbproject/genfiles.properties b/WebApp/nbproject/genfiles.properties index c2be8a6..91f4edd 100644 --- a/WebApp/nbproject/genfiles.properties +++ b/WebApp/nbproject/genfiles.properties @@ -1,8 +1,9 @@ -build.xml.data.CRC32=aaf3f8be +build.xml.data.CRC32=f891d94c build.xml.script.CRC32=93337f6c build.xml.stylesheet.CRC32=651128d4@1.77.1.1 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=aaf3f8be -nbproject/build-impl.xml.script.CRC32=18334a6b +nbproject/build-impl.xml.data.CRC32=f891d94c +nbproject/build-impl.xml.script.CRC32=cfa24a41 nbproject/build-impl.xml.stylesheet.CRC32=99ea4b56@1.77.1.1 +nbproject/jaxws-build.xml.stylesheet.CRC32=6608c2cf diff --git a/WebApp/nbproject/jax-ws.xml b/WebApp/nbproject/jax-ws.xml new file mode 100644 index 0000000..67dc088 --- /dev/null +++ b/WebApp/nbproject/jax-ws.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jax-ws xmlns="http://www.netbeans.org/ns/jax-ws/1"> + <services/> + <clients> + <client name="Account"> + <wsdl-url>http://localhost:8002/OjekOnlineWebservice/Account?wsdl</wsdl-url> + <local-wsdl-file>localhost_8002/OjekOnlineWebservice/Account.wsdl</local-wsdl-file> + <package-name>account</package-name> + <catalog-file>catalog.xml</catalog-file> + <wsimport-options> + <wsimport-option> + <wsimport-option-name>extension</wsimport-option-name> + <wsimport-option-value>true</wsimport-option-value> + </wsimport-option> + <wsimport-option> + <wsimport-option-name>verbose</wsimport-option-name> + <wsimport-option-value>true</wsimport-option-value> + </wsimport-option> + <wsimport-option> + <wsimport-option-name>fork</wsimport-option-name> + <wsimport-option-value>false</wsimport-option-value> + </wsimport-option> + <wsimport-option> + <wsimport-option-name>wsdlLocation</wsimport-option-name> + <wsimport-option-value>http://localhost:8002/OjekOnlineWebservice/Account?wsdl</wsimport-option-value> + </wsimport-option> + <wsimport-option> + <wsimport-option-name>xnocompile</wsimport-option-name> + <wsimport-option-value>true</wsimport-option-value> + </wsimport-option> + <wsimport-option> + <wsimport-option-name>xendorsed</wsimport-option-name> + <wsimport-option-value>true</wsimport-option-value> + </wsimport-option> + </wsimport-options> + </client> + </clients> +</jax-ws> diff --git a/WebApp/nbproject/jaxws-build.xml b/WebApp/nbproject/jaxws-build.xml new file mode 100644 index 0000000..78e541f --- /dev/null +++ b/WebApp/nbproject/jaxws-build.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?><!-- + *** GENERATED FROM jax-ws.xml - DO NOT EDIT ! *** + *** TO MODIFY wsimport options USE Web Service node -> Edit WS Attributes *** + *** TO CHANGE TARGETS GENERATED TO jaxws-build.xml COPY THOSE *** + *** TARGETS TO ../build.xml AND MODIFY THAT FILE INSTEAD *** + + --><project xmlns:xalan="http://xml.apache.org/xslt" xmlns:webproject2="http://www.netbeans.org/ns/web-project/2" xmlns:jaxws="http://www.netbeans.org/ns/jax-ws/1"> + <!-- + =================== + JAX-WS WSGEN SECTION + =================== + --> + <!-- + =================== + JAX-WS WSIMPORT SECTION + =================== + --> + <target name="wsimport-init" depends="init"> + <fail if="${wsimport.bad.version}" message="WsImport ant task defined in the classpath ${j2ee.platform.wsimport.classpath} has a serious bug. See http://wiki.netbeans.org/MetroIssue for details."/> + <mkdir dir="${build.generated.sources.dir}/jax-ws"/> + <property name="j2ee.platform.wsimport.classpath" value="${libs.jaxws21.classpath}"/> + <taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport"> + <classpath path="${java.home}/../lib/tools.jar:${j2ee.platform.wsimport.classpath}:${javac.classpath}"/> + </taskdef> + <condition property="conf-dir" value="${conf.dir}/" else=""> + <isset property="conf.dir"/> + </condition> + </target> + <target name="wsimport-client-Account" depends="wsimport-init"> + <mkdir dir="${build.generated.dir}/jax-wsCache/Account"/> + <wsimport sourcedestdir="${build.generated.dir}/jax-wsCache/Account" destdir="${build.generated.dir}/jax-wsCache/Account" wsdl="${basedir}/${conf-dir}xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl" catalog="catalog.xml" encoding="${source.encoding}" extension="true" verbose="true" fork="false" wsdlLocation="http://localhost:8002/OjekOnlineWebservice/Account?wsdl" xnocompile="true" xendorsed="true"> + <depends file="${basedir}/${conf-dir}xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl"/> + <produces dir="${build.generated.dir}/jax-wsCache/Account"/> + </wsimport> + <copy todir="${build.generated.sources.dir}/jax-ws"> + <fileset dir="${build.generated.dir}/jax-wsCache/Account"> + <include name="**/*.java"/> + </fileset> + </copy> + </target> + <target name="wsimport-client-clean-Account" depends="-init-project"> + <delete dir="${build.generated.sources.dir}/jax-ws/account"/> + <delete dir="${build.generated.dir}/jax-wsCache/Account"/> + </target> + <target name="wsimport-client-generate" depends="wsimport-client-Account"/> +</project> diff --git a/WebApp/nbproject/project.properties b/WebApp/nbproject/project.properties index d0baeac..5ff9c62 100644 --- a/WebApp/nbproject/project.properties +++ b/WebApp/nbproject/project.properties @@ -70,7 +70,6 @@ javadoc.use=true javadoc.version=false javadoc.windowtitle= lib.dir=${web.docbase.dir}/WEB-INF/lib -no.dependencies=false persistence.xml.dir=${conf.dir} platform.active=default_platform resource.dir=setup diff --git a/WebApp/nbproject/project.xml b/WebApp/nbproject/project.xml index 1b8c703..7a8dc0c 100644 --- a/WebApp/nbproject/project.xml +++ b/WebApp/nbproject/project.xml @@ -2,6 +2,11 @@ <project xmlns="http://www.netbeans.org/ns/project/1"> <type>org.netbeans.modules.web.project</type> <configuration> + <buildExtensions xmlns="http://www.netbeans.org/ns/ant-build-extender/1"> + <extension file="jaxws-build.xml" id="jaxws"> + <dependency dependsOn="wsimport-client-generate" target="-pre-pre-compile"/> + </extension> + </buildExtensions> <data xmlns="http://www.netbeans.org/ns/web-project/3"> <name>WebApp</name> <minimum-ant-version>1.6.5</minimum-ant-version> @@ -13,10 +18,10 @@ </web-module-libraries> <web-module-additional-libraries/> <source-roots> - <root id="src.dir" name="Source Packages"/> + <root id="src.dir"/> </source-roots> <test-roots> - <root id="test.src.dir" name="Test Packages"/> + <root id="test.src.dir"/> </test-roots> </data> </configuration> diff --git a/WebApp/src/conf/xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl b/WebApp/src/conf/xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl new file mode 100644 index 0000000..4c1115e --- /dev/null +++ b/WebApp/src/conf/xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl @@ -0,0 +1,55 @@ +<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is Metro/2.3.2-b608 (trunk-7979; 2015-01-21T12:50:19+0000) JAXWS-RI/2.2.11-b150120.1832 JAXWS-API/2.2.12 JAXB-RI/2.2.12-b141219.1637 JAXB-API/2.2.13-b141020.1521 svn-revision#unknown. --><!-- Generated by JAX-WS RI (http://jax-ws.java.net). RI's version is Metro/2.3.2-b608 (trunk-7979; 2015-01-21T12:50:19+0000) JAXWS-RI/2.2.11-b150120.1832 JAXWS-API/2.2.12 JAXB-RI/2.2.12-b141219.1637 JAXB-API/2.2.13-b141020.1521 svn-revision#unknown. --><definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://account/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://account/" name="Account"> +<types> +<xsd:schema> +<xsd:import namespace="http://account/" schemaLocation="http://localhost:8002/OjekOnlineWebservice/Account?xsd=1"/> +</xsd:schema> +</types> +<message name="validate"> +<part name="parameters" element="tns:validate"/> +</message> +<message name="validateResponse"> +<part name="parameters" element="tns:validateResponse"/> +</message> +<message name="getUsername"> +<part name="parameters" element="tns:getUsername"/> +</message> +<message name="getUsernameResponse"> +<part name="parameters" element="tns:getUsernameResponse"/> +</message> +<portType name="Account"> +<operation name="validate"> +<input wsam:Action="http://account/Account/validateRequest" message="tns:validate"/> +<output wsam:Action="http://account/Account/validateResponse" message="tns:validateResponse"/> +</operation> +<operation name="getUsername"> +<input wsam:Action="http://account/Account/getUsernameRequest" message="tns:getUsername"/> +<output wsam:Action="http://account/Account/getUsernameResponse" message="tns:getUsernameResponse"/> +</operation> +</portType> +<binding name="AccountPortBinding" type="tns:Account"> +<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> +<operation name="validate"> +<soap:operation soapAction=""/> +<input> +<soap:body use="literal"/> +</input> +<output> +<soap:body use="literal"/> +</output> +</operation> +<operation name="getUsername"> +<soap:operation soapAction=""/> +<input> +<soap:body use="literal"/> +</input> +<output> +<soap:body use="literal"/> +</output> +</operation> +</binding> +<service name="Account"> +<port name="AccountPort" binding="tns:AccountPortBinding"> +<soap:address location="http://localhost:8002/OjekOnlineWebservice/Account"/> +</port> +</service> +</definitions> \ No newline at end of file diff --git a/WebApp/src/conf/xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.xsd_1.xsd b/WebApp/src/conf/xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.xsd_1.xsd new file mode 100644 index 0000000..0e5e085 --- /dev/null +++ b/WebApp/src/conf/xml-resources/web-service-references/Account/wsdl/localhost_8002/OjekOnlineWebservice/Account.xsd_1.xsd @@ -0,0 +1,47 @@ +<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is Metro/2.3.2-b608 (trunk-7979; 2015-01-21T12:50:19+0000) JAXWS-RI/2.2.11-b150120.1832 JAXWS-API/2.2.12 JAXB-RI/2.2.12-b141219.1637 JAXB-API/2.2.13-b141020.1521 svn-revision#unknown. --><xs:schema xmlns:tns="http://account/" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://account/"> + +<xs:element name="getUsername" type="tns:getUsername"/> + +<xs:element name="getUsernameResponse" type="tns:getUsernameResponse"/> + +<xs:element name="validate" type="tns:validate"/> + +<xs:element name="validateResponse" type="tns:validateResponse"/> + +<xs:complexType name="validate"> +<xs:sequence> +<xs:element name="token" type="xs:string" minOccurs="0"/> +</xs:sequence> +</xs:complexType> + +<xs:complexType name="validateResponse"> +<xs:sequence> +<xs:element name="return" type="tns:accountObj" minOccurs="0"/> +</xs:sequence> +</xs:complexType> + +<xs:complexType name="accountObj"> +<xs:sequence> +<xs:element name="id" type="xs:int"/> +<xs:element name="username" type="xs:string"/> +<xs:element name="email" type="xs:string"/> +<xs:element name="fullname" type="xs:string"/> +<xs:element name="password" type="xs:string"/> +<xs:element name="phone_no" type="xs:string"/> +<xs:element name="token" type="xs:string"/> +<xs:element name="validate" type="xs:int"/> +</xs:sequence> +</xs:complexType> + +<xs:complexType name="getUsername"> +<xs:sequence> +<xs:element name="id" type="xs:int"/> +</xs:sequence> +</xs:complexType> + +<xs:complexType name="getUsernameResponse"> +<xs:sequence> +<xs:element name="return" type="xs:string" minOccurs="0"/> +</xs:sequence> +</xs:complexType> +</xs:schema> \ No newline at end of file diff --git a/WebApp/web/WEB-INF/jax-ws-catalog.xml b/WebApp/web/WEB-INF/jax-ws-catalog.xml new file mode 100644 index 0000000..b2498be --- /dev/null +++ b/WebApp/web/WEB-INF/jax-ws-catalog.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system"> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Location?wsdl" uri="wsdl/localhost_8002/OjekOnlineWebservice/Location.wsdl"/> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Location?xsd=1" uri="wsdl/localhost_8002/OjekOnlineWebservice/Location.xsd_1.xsd"/> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Accounts?wsdl" uri="wsdl/localhost_8002/OjekOnlineWebservice/Accounts.wsdl"/> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Accounts?xsd=1" uri="wsdl/localhost_8002/OjekOnlineWebservice/Accounts.xsd_1.xsd"/> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Account?wsdl" uri="wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl"/> + <system systemId="http://localhost:8002/OjekOnlineWebservice/Account?xsd=1" uri="wsdl/localhost_8002/OjekOnlineWebservice/Account.xsd_1.xsd"/> +</catalog> \ No newline at end of file diff --git a/WebApp/web/WEB-INF/wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl b/WebApp/web/WEB-INF/wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl new file mode 100644 index 0000000..4c1115e --- /dev/null +++ b/WebApp/web/WEB-INF/wsdl/localhost_8002/OjekOnlineWebservice/Account.wsdl @@ -0,0 +1,55 @@ +<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is Metro/2.3.2-b608 (trunk-7979; 2015-01-21T12:50:19+0000) JAXWS-RI/2.2.11-b150120.1832 JAXWS-API/2.2.12 JAXB-RI/2.2.12-b141219.1637 JAXB-API/2.2.13-b141020.1521 svn-revision#unknown. --><!-- Generated by JAX-WS RI (http://jax-ws.java.net). RI's version is Metro/2.3.2-b608 (trunk-7979; 2015-01-21T12:50:19+0000) JAXWS-RI/2.2.11-b150120.1832 JAXWS-API/2.2.12 JAXB-RI/2.2.12-b141219.1637 JAXB-API/2.2.13-b141020.1521 svn-revision#unknown. --><definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://account/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://account/" name="Account"> +<types> +<xsd:schema> +<xsd:import namespace="http://account/" schemaLocation="http://localhost:8002/OjekOnlineWebservice/Account?xsd=1"/> +</xsd:schema> +</types> +<message name="validate"> +<part name="parameters" element="tns:validate"/> +</message> +<message name="validateResponse"> +<part name="parameters" element="tns:validateResponse"/> +</message> +<message name="getUsername"> +<part name="parameters" element="tns:getUsername"/> +</message> +<message name="getUsernameResponse"> +<part name="parameters" element="tns:getUsernameResponse"/> +</message> +<portType name="Account"> +<operation name="validate"> +<input wsam:Action="http://account/Account/validateRequest" message="tns:validate"/> +<output wsam:Action="http://account/Account/validateResponse" message="tns:validateResponse"/> +</operation> +<operation name="getUsername"> +<input wsam:Action="http://account/Account/getUsernameRequest" message="tns:getUsername"/> +<output wsam:Action="http://account/Account/getUsernameResponse" message="tns:getUsernameResponse"/> +</operation> +</portType> +<binding name="AccountPortBinding" type="tns:Account"> +<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> +<operation name="validate"> +<soap:operation soapAction=""/> +<input> +<soap:body use="literal"/> +</input> +<output> +<soap:body use="literal"/> +</output> +</operation> +<operation name="getUsername"> +<soap:operation soapAction=""/> +<input> +<soap:body use="literal"/> +</input> +<output> +<soap:body use="literal"/> +</output> +</operation> +</binding> +<service name="Account"> +<port name="AccountPort" binding="tns:AccountPortBinding"> +<soap:address location="http://localhost:8002/OjekOnlineWebservice/Account"/> +</port> +</service> +</definitions> \ No newline at end of file diff --git a/WebApp/web/WEB-INF/wsdl/localhost_8002/OjekOnlineWebservice/Account.xsd_1.xsd b/WebApp/web/WEB-INF/wsdl/localhost_8002/OjekOnlineWebservice/Account.xsd_1.xsd new file mode 100644 index 0000000..0e5e085 --- /dev/null +++ b/WebApp/web/WEB-INF/wsdl/localhost_8002/OjekOnlineWebservice/Account.xsd_1.xsd @@ -0,0 +1,47 @@ +<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is Metro/2.3.2-b608 (trunk-7979; 2015-01-21T12:50:19+0000) JAXWS-RI/2.2.11-b150120.1832 JAXWS-API/2.2.12 JAXB-RI/2.2.12-b141219.1637 JAXB-API/2.2.13-b141020.1521 svn-revision#unknown. --><xs:schema xmlns:tns="http://account/" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://account/"> + +<xs:element name="getUsername" type="tns:getUsername"/> + +<xs:element name="getUsernameResponse" type="tns:getUsernameResponse"/> + +<xs:element name="validate" type="tns:validate"/> + +<xs:element name="validateResponse" type="tns:validateResponse"/> + +<xs:complexType name="validate"> +<xs:sequence> +<xs:element name="token" type="xs:string" minOccurs="0"/> +</xs:sequence> +</xs:complexType> + +<xs:complexType name="validateResponse"> +<xs:sequence> +<xs:element name="return" type="tns:accountObj" minOccurs="0"/> +</xs:sequence> +</xs:complexType> + +<xs:complexType name="accountObj"> +<xs:sequence> +<xs:element name="id" type="xs:int"/> +<xs:element name="username" type="xs:string"/> +<xs:element name="email" type="xs:string"/> +<xs:element name="fullname" type="xs:string"/> +<xs:element name="password" type="xs:string"/> +<xs:element name="phone_no" type="xs:string"/> +<xs:element name="token" type="xs:string"/> +<xs:element name="validate" type="xs:int"/> +</xs:sequence> +</xs:complexType> + +<xs:complexType name="getUsername"> +<xs:sequence> +<xs:element name="id" type="xs:int"/> +</xs:sequence> +</xs:complexType> + +<xs:complexType name="getUsernameResponse"> +<xs:sequence> +<xs:element name="return" type="xs:string" minOccurs="0"/> +</xs:sequence> +</xs:complexType> +</xs:schema> \ No newline at end of file diff --git a/WebApp/web/index.jsp b/WebApp/web/index.jsp index fe07c47..cb5ef7d 100644 --- a/WebApp/web/index.jsp +++ b/WebApp/web/index.jsp @@ -90,8 +90,9 @@ } catch (IOException ex) { } - JSONObject JSobjek = null; - out.println(responsebuff.toString()); + JSONObject JSobjek = new JSONObject(responsebuff.toString()); + /*out.println(responsebuff.toString()); + //out.println(responsebuff.toString()); try { new JSONObject(responsebuff.toString()); } catch (JSONException ex) { @@ -101,7 +102,9 @@ new JSONArray(responsebuff.toString()); } catch (JSONException ex1) { } - } + }*/ + + //JSobjek = new JSONObject(responsebuff.toString()); if (JSobjek!=null) { //str = (String)JSobjek.get("id"); int respId = (int)JSobjek.getInt("id"); @@ -111,7 +114,7 @@ if (respId != 0) { Cookie cookie = new Cookie("token",(String)JSobjek.getString("token")); response.addCookie(cookie); - response.sendRedirect("http://localhost:8000/WebApp/profile.jsp"); + response.sendRedirect("http://localhost:8080/WebApp/profile.jsp"); } } %> diff --git a/WebApp/web/profile.jsp b/WebApp/web/profile.jsp index 593cd21..4705055 100644 --- a/WebApp/web/profile.jsp +++ b/WebApp/web/profile.jsp @@ -5,7 +5,45 @@ --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@page import="java.text.NumberFormat"%> +<%@page import="java.util.Locale"%> + <!DOCTYPE html> + <%-- start web service invocation --%> + <% + account.Account_Service serviceValid = new account.Account_Service(); + account.Account portValid = serviceValid.getAccountPort(); + String token = null; + Cookie cookie = null; + Cookie[] cookies = null; + cookies = request.getCookies(); + for (int i = 0; i < cookies.length; i++) { + cookie = cookies[i]; + if((cookie.getName()).compareTo("token") == 0 ){ + token = cookie.getValue(); + //cookie.setMaxAge(0); + } + } + //out.println(token); + //java.lang.String token = "qwertyuiop"; + // TODO process result here + //account.Account portValid = new Account(); + account.AccountObj resultValid = portValid.validate(token); + int valid = resultValid.getValidate(); + if (valid == 2) { + for (int i = 0; i < cookies.length; i++) { + cookie = cookies[i]; + if((cookie.getName()).compareTo("token") == 0 ){ + token = cookie.getValue(); + cookie.setMaxAge(0); + } + } + Cookie cookieExpires = new Cookie("token",resultValid.getToken()); + response.addCookie(cookieExpires); + } else if (valid == 3) { + response.sendRedirect("http://localhost:8080/WebApp/index.jsp"); + } + %> <html> <head> @@ -61,12 +99,12 @@ </div> <div class="img-profile"> <img src="<?php echo getImageProfile($con, $username); ?>"> - <h3 style="margin-bottom: 5px;">@<!--?php echo $username ?--></h3> - <!--?php echo getNameUser($con, $username); ?><br> + <h3 style="margin-bottom: 5px;">@<%out.println(resultValid.getUsername()); %><!--?php echo $username ?--></h3> + <%out.println(resultValid.getFullname());%><!--?php echo getNameUser($con, $username); ?><br> <?php echo checkStatus($con, $username); ?--> <br> - <i class="fa fa-envelope-o" aria-hidden="true"> <!--?php echo getEmailUser($con, $username);?--></i><br> - <i class="fa fa-phone" aria-hidden="true"> <!--?php echo getPhoneUser($con, $username); ?--></i> + <i class="fa fa-envelope-o" aria-hidden="true"> <%out.println(resultValid.getEmail());%><!--?php echo getEmailUser($con, $username);?--></i><br> + <i class="fa fa-phone" aria-hidden="true"> <%out.println(resultValid.getPhoneNo());%><!--?php echo getPhoneUser($con, $username); ?--></i> </div> </div> diff --git a/WebApp/web/register.jsp b/WebApp/web/register.jsp index e71dd92..2bda08e 100644 --- a/WebApp/web/register.jsp +++ b/WebApp/web/register.jsp @@ -81,7 +81,7 @@ } catch (IOException ex) { } - JSONObject JSobjek = null; + JSONObject JSobjek = new JSONObject(responsebuff.toString()); try { new JSONObject(responsebuff.toString()); } catch (JSONException ex) { @@ -101,9 +101,9 @@ if (respC != -1) { Cookie cookie = new Cookie("token",(String)JSobjek.getString("token")); response.addCookie(cookie); - response.sendRedirect("http://localhost:8000/WebApp/profile.jsp"); + response.sendRedirect("http://localhost:8080/WebApp/profile.jsp"); } else { - response.sendRedirect("http://localhost:8000/WebApp/register.jsp"); + response.sendRedirect("http://localhost:8080/WebApp/register.jsp"); } } %> diff --git a/data/derby.log b/data/derby.log index 74686b5..e69de29 100644 --- a/data/derby.log +++ b/data/derby.log @@ -1 +0,0 @@ -Wed Nov 08 22:42:02 ICT 2017 : Apache Derby Network Server - 10.11.1.2 - (1629631) started and ready to accept connections on port 1527 -- GitLab