ソースを参照

Add External Token destination server URLs and External Password Check REST Server URLs to the rest test server.

AUre 6 年 前
コミット
0122b9152a

+ 38 - 3
rest-test-service/src/main/java/password/pwm/resttest/ExternalMacroServlet.java

@@ -24,6 +24,8 @@
 package password.pwm.resttest;
 
 import com.google.gson.Gson;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
 import org.apache.commons.io.IOUtils;
 
 import javax.servlet.ServletException;
@@ -38,7 +40,7 @@ import java.util.Date;
 
 @WebServlet(
         name = "NewUserServlet",
-        urlPatterns = { "/sms", "/macro" }
+        urlPatterns = { "/sms", "/macro", "/external-token-destination", "/external-password-check" }
 )
 
 public class ExternalMacroServlet extends HttpServlet
@@ -46,11 +48,15 @@ public class ExternalMacroServlet extends HttpServlet
     private static final String USERNAME_PARAMETER = "username";
     private static final String SUCCESSFUL = "true";
     private static final String UNSUCCESSFUL = "false";
+    private static final String SMS_URL = "/sms";
+    private static final String MACRO_URL = "/macro";
+    private static final String EXTERNAL_TOKEN_DESTINATION_URL = "/external-token-destination";
+    private static final String EXTERNAL_PASSWORD_CHECK_URL = "/external-password-check";
 
     @Override
     protected void doPost( final HttpServletRequest req, final HttpServletResponse resp ) throws ServletException, IOException
     {
-        if ( req.getServletPath().equals( "/sms" ) )
+        if ( req.getServletPath().equals( SMS_URL ) )
         {
             final SmsResponse instance = SmsResponse.getInstance();
             final InputStream inputStream = req.getInputStream();
@@ -72,12 +78,41 @@ public class ExternalMacroServlet extends HttpServlet
             writer.write(  "{\"output\":\"Message Received\"}" );
             writer.close();
         }
+        else if ( req.getServletPath().equals( EXTERNAL_TOKEN_DESTINATION_URL ) )
+        {
+            System.out.println( "External Token Destination" );
+            final InputStream inputStream = req.getInputStream();
+            final String body = IOUtils.toString( inputStream );
+            final JsonObject jsonObject = new JsonParser().parse( body ).getAsJsonObject();
+            final String email = jsonObject.getAsJsonObject( "tokenDestination" ).get( "email" ).getAsString();
+            final String sms = jsonObject.getAsJsonObject( "tokenDestination" ).get( "sms" ).getAsString();
+            final String displayValue = "YourTokenDestination";
+
+            resp.setHeader( "Content-Type", "application/json" );
+
+            final PrintWriter writer = resp.getWriter();
+            final String response = "{\"email\":\"" + email + "\",\"sms\":\"" + sms + "\",\"displayValue\":\"" + displayValue + "\"}";
+            writer.write( response );
+            writer.close();
+        }
+        else if ( req.getServletPath().equals( EXTERNAL_PASSWORD_CHECK_URL ) )
+        {
+            System.out.println( "External Password Check" );
+            final boolean error = false;
+            final String errorMessage = "No error.";
+            resp.setHeader( "Content-Type", "application/json" );
+
+            final PrintWriter writer = resp.getWriter();
+            final String response = "{\"error\":\"" + error + "\",\"errorMessage\":\"" + errorMessage + "\"}";
+            writer.write( response );
+            writer.close();
+        }
     }
 
     @Override
     protected void doGet( final HttpServletRequest req, final HttpServletResponse resp ) throws IOException
     {
-        if ( req.getServletPath().equals( "/sms" ) )
+        if ( req.getServletPath().equals( SMS_URL ) )
         {
             //Check request
             final SmsResponse instance = SmsResponse.getInstance();

+ 6 - 6
rest-test-service/src/main/java/password/pwm/resttest/SmsPostResponseBody.java

@@ -26,14 +26,14 @@ import java.util.Date;
 
 public class SmsPostResponseBody
 {
-    private static String messageContent;
-    private static Date date;
+    private String messageContent;
+    private Date date;
 
     public SmsPostResponseBody( final String message, final Date date )
     {
         final String[] strings = message.split( "&" );
         this.messageContent = strings[strings.length - 1];
-        this.date = date;
+        this.date = new Date( date.getTime() );
     }
 
     public SmsPostResponseBody( final String message )
@@ -44,7 +44,7 @@ public class SmsPostResponseBody
 
     public SmsPostResponseBody( final Date date )
     {
-        this.date = date;
+        this.date = new Date( date.getTime() );
         this.messageContent = "";
     }
 
@@ -65,11 +65,11 @@ public class SmsPostResponseBody
 
     public Date getDate()
     {
-        return date;
+        return new Date( this.date.getTime() );
     }
 
     public void setDate( final Date date )
     {
-        this.date = date;
+        this.date = new Date( this.date.getTime() );
     }
 }