advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement


Listing 3: SSLServerSide.java (location: C:\j2sse\server\)
import java.net.*;
import java.io.*;
import javax.net.*;
import javax.net.ssl.*;
import java.security.*;

class reply extends Thread{

Socket ClientSocket=null;     //client socket
PrintWriter out=null;         //out stream
BufferedReader in=null;       //in stream
InputStreamReader ISR=null;

String in_str=null;          
String out_str=null;

public reply(Socket s)
   {
   ClientSocket=s;        
   }

public void run()
{
try{
   out=new PrintWriter(ClientSocket.getOutputStream(),true);
   ISR=new InputStreamReader(ClientSocket.getInputStream());
   in=new BufferedReader(ISR);
      
   out.println("Hello, I'm a secure server...");

    while((in_str=in.readLine())!=null)
    {
    if(in_str.equals("Bye!"))break;        
    System.out.println("Recive:"+in_str);
    out_str=in_str;
                 
    if(out_str!=null)out.println(out_str);
    }
     
    out.close();     
    in.close(); 
    ClientSocket.close();
    
    }catch(IOException e)
       {       
       System.out.println("Erorr"+e.getMessage());   
       try{
          out.close();     
          in.close(); 
          ClientSocket.close();
          }catch(IOException ex)
             {System.out.println("Error:"+ex.getMessage());}
       }
   }
}

public class SSLServerSide{
     public static void main(String[] args)
     {     
     ServerSocket SSL_server_soclu=null;
     
     SSLContext ServerContext=null;       //the context
     KeyStore ServerKS=null;              //the SSLcert keystore
     KeyManagerFactory ServerKMF=null;    //KeyManagerFactory factory

     char[] ServerKeyStorePassword="e1002qa2".toCharArray();  //keystore password
     char[] ServerKeysPassword="e1002qa2".toCharArray();      //keys password

  //getting a JKS KeyStore
  try{
     ServerKS=KeyStore.getInstance("JKS");
     }catch(java.security.KeyStoreException e)
        {System.out.println("Error:"+e.getMessage());}
  
  //loading the SSLCert keystore
  try{  
     ServerKS.load(new FileInputStream("SSLcert"),ServerKeyStorePassword);
     }catch(java.io.IOException e)
       {System.out.println("Error:"+e.getMessage());
     }catch(java.security.NoSuchAlgorithmException e)
       {System.out.println("Error:"+e.getMessage());
     }catch(java.security.cert.CertificateException e)
       {System.out.println("Error:"+e.getMessage());}

  //generate a KeyManagerFactory
  try{
     ServerKMF=KeyManagerFactory.getInstance("SunX509","SunJSSE");
     }catch(java.security.NoSuchAlgorithmException e)
       {System.out.println("Error:"+e.getMessage());
     }catch(java.security.NoSuchProviderException e)
       {System.out.println("Error:"+e.getMessage());}

  //initialize the KeyManagerFactory from above
  try{
     ServerKMF.init(ServerKS,ServerKeysPassword);
     }catch(java.security.KeyStoreException e)
        {System.out.println("Error:"+e.getMessage());
     }catch(java.security.NoSuchAlgorithmException e)
        {System.out.println("Error:"+e.getMessage());
     }catch(java.security.UnrecoverableKeyException e)
        {System.out.println("Error:"+e.getMessage());}
  
  //create the context  
  try{  
     ServerContext=SSLContext.getInstance("SSL");  
     }catch(java.security.NoSuchAlgorithmException e)
        {System.out.println("Error:"+e.getMessage());}
        
  //initialize the context from above
  try{
     ServerContext.init(ServerKMF.getKeyManagers(), null, null);
     }catch(java.security.KeyManagementException e)
        {System.out.println("Error:"+e.getMessage());}     
     
     try{

        ServerSocketFactory SSL_server_fabrica=ServerContext.getServerSocketFactory();
        SSL_server_soclu=SSL_server_fabrica.createServerSocket(443); 


  	  System.out.println("SSL Server ...");
	  while(true){ 
                   Socket SSLsocket=SSL_server_soclu.accept(); 
			 Thread t=new reply(SSLsocket);
			 t.start(); 
			 }
	   }catch(IOException e)
             {System.out.println("Error:"+e.getMessage());}  
     }
}

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Microsoft RIA Development Center
 IBM Rational Resource Center
 Destination .NET
XML error: not well-formed (invalid token) at line 33
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Free VMware Server 2.0 Now Release Candidate
Linux Player Xandros Grabs Storied Rival Linspire
Hey Enterprise: Here Comes the 3G iPhone
MySpace Opens Profile Portability API
Microsoft Jumps Into Virtualization Fray
Eclipse Ganymede Makes It Easier for Devs
Open Source Nokia a Threat to Microsoft, Google?
Salesforce, Google Head for 2nd on Apps
HP Open Sources Unix File System for Linux
Red Hat Opens Its Network to Space

Build a Generic Histogram Generator for SQL Server
Beyond XML and JSON: YAML for Java Developers
Mastering the Windows Mobile Emulators
Avaya AE Services Provide Rapid Telephony Integration with Facebook
Featured Algorithm: Intel Threading Building Blocks: parallel_reduce
Getting Started with Windows Live Admin Center
Eight Key Practices for ASP.NET Deployment
Java ME User Interfaces: Do It with LWUIT!
Talking VPro: Transcript
Bringing Semantic Technology to the Enterprise

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
IBM eBook: Planning a Service Oriented Architecture
IBM eBook: Choosing the Right Architecture--What It Means for You and Your Business
Microsoft Article: Will Hyper-V Make VMware This Decade's Netscape?
Avaya Article: Using Intelligent Presence to Create Smarter Business Applications
Intel Go Parallel Article: Getting Started with TBB on Windows
Microsoft Article: 7.0, Microsoft's Lucky Version?
Avaya Article: How to Feed Data into the Avaya Event Processor
IBM Article: Developing a Software Policy for Your Organization
Microsoft Article: Managing Virtual Machines with Microsoft System Center
Intel Go Parallel Article: Intel Threading Tools and OpenMP
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
HP Video: StorageWorks EVA4400 and Oracle
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Red Gate Download: SQL Toolbelt and free High-Performance SQL Code eBook
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
Silverlight 2 App and Walkthrough: Leverage Silverlight 2 with SQL Server and XML
IBM Article: Enterprise Search--Do You Know What's Out There?
HP Demo: StorageWorks EVA4400
Microsoft Article: The Progress and Promise of Deep Zoom
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES