Advertisement
Guest User

Untitled

a guest
May 29th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.90 KB | None | 0 0
  1. package isg;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.util.Enumeration;
  6. import java.util.List;
  7.  
  8. import javax.jdo.PersistenceManager;
  9. import javax.servlet.http.*;
  10.  
  11. @SuppressWarnings("serial")
  12. public class ISGServlet extends HttpServlet {
  13. private String[] PlayerActions = { "display_all", "uname_available", "create_user", "authenticate" };
  14.    
  15.     @SuppressWarnings("unchecked")
  16.     public Player getPlayer( PersistenceManager pm, String name ) {
  17.         javax.jdo.Query query = pm.newQuery( Player.class, "this.playerName == name");
  18.         query.declareParameters("String name");
  19.         List<Player> players = (List<Player>)query.execute(name);
  20.        
  21.         if( players.isEmpty() ) {
  22.             return null;
  23.         }
  24.        
  25.         // there should either be 0 matches or 1 match
  26.         return players.get(0);
  27.     }
  28.    
  29.     public boolean isPlayerAction( String action ) {
  30.         for( String availableAction:PlayerActions )
  31.             if( availableAction.equals( action ) )
  32.                 return true;
  33.        
  34.         return false;
  35.     }
  36.    
  37.     // note: user input sanitization should be done on the client ( eg. checking inputs are not null, etc. )
  38.     @SuppressWarnings("unchecked")
  39.     public void doGet( HttpServletRequest req, HttpServletResponse resp )
  40.             throws IOException {
  41.         PrintWriter out = resp.getWriter();
  42.         resp.setContentType("text/plain");
  43.        
  44.         String username   = req.getHeader( "username" );
  45.         String action     = req.getHeader( "action" );
  46.        
  47.         if( action == null ) {
  48.             action   = req.getParameter( "action" );
  49.             username = req.getParameter( "username" );
  50.         }
  51.        
  52.         if( isPlayerAction( action ) ) {           
  53.             if( action.equals("display_all") ) {
  54.                 PersistenceManager pm = PMF.get().getPersistenceManager();
  55.                 javax.jdo.Query query = pm.newQuery( Player.class );
  56.                 List<Player> players = (List<Player>)query.execute();
  57.                
  58.                 for( Player p:players ) {
  59.                     out.println( "Name    : " + p.getName() );
  60.                     out.println( "Password: " + p.getPassword() );
  61.                     out.println( "Email   : " + p.getEmail() );
  62.                     out.println( "ShipName: " + p.getShipName() + "\n\n" );
  63.                 }
  64.             }
  65.            
  66.             else if( action.equals("uname_available") ) {
  67.                 PersistenceManager pm = PMF.get().getPersistenceManager();
  68.                 int returnValue = ( getPlayer( pm, username ) == null ) ? 0 : 1;
  69.                 out.print( returnValue );
  70.             }
  71.             else if( action.equals("create_user") ) {
  72.                 String password, email, ship;
  73.                
  74.                 if( req.getHeader("action") != null ) {            
  75.                     password = req.getHeader( "password" );
  76.                     email    = req.getHeader( "email" );
  77.                     ship        = req.getHeader( "shipName" );
  78.                 }
  79.                 else {
  80.                     password = req.getParameter( "password" );
  81.                     email    = req.getParameter( "email" );
  82.                     ship        = req.getParameter( "shipName" );
  83.                 }
  84.                
  85.                 int returnValue = 0;
  86.                 PersistenceManager pm = PMF.get().getPersistenceManager();             
  87.                 if( getPlayer( pm, username ) == null ) {
  88.                     Player player = new Player( username, password, email, ship );
  89.                    
  90.                     try {
  91.                         pm.makePersistent( player );
  92.                     } finally {
  93.                         pm.close();
  94.                     }
  95.                    
  96.                     returnValue = 1;
  97.                 }
  98.                
  99.                 out.print( returnValue );
  100.             }
  101.             else if( action.equals("authenticate") ) {
  102.                 PersistenceManager pm = PMF.get().getPersistenceManager();
  103.                
  104.                 String password;
  105.                
  106.                 if( req.getHeader("action") != null )
  107.                     password = req.getHeader("password");
  108.                 else
  109.                     password = req.getParameter("password");
  110.                
  111.                 out.println("received name : " + username);
  112.                 out.println("received pass : " + password);
  113.                
  114.                 Player p = getPlayer( pm, username );
  115.                 int returnValue = 0;
  116.                
  117.                 if( p != null )
  118.                   returnValue = p.getPassword().equals( password ) ? 1 : 0;
  119.  
  120.                 out.print( returnValue );
  121.             }
  122.         }
  123.         else
  124.             out.print("the action I received was : " + action );
  125.     }
  126.  
  127.     public void doPost( HttpServletRequest req, HttpServletResponse resp )
  128.             throws IOException {
  129.         // redirect all POST requests to a common handler
  130.         doGet( req, resp );
  131.     }
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement