I tried by including the following to establish the cookie
<sun-web-app>
<session-config>
<session-manager persistence-type="memory">
<manager-properties>
<property name="reapIntervalSeconds" value="20" />
</manager-properties>
</session-manager>
<session-properties>
<property name="enableCookies" value="true" />
</session-properties>
<cookie-properties>
<property name="cookiePath" value="/" />
<property name="cookieMaxAgeSeconds" value="-1" />
</cookie-properties>
</session-config>
<jsp-config/>
</sun-web-app>
in the sun-web.xml.
Please find the code that I am using.
-------------------------------------------------------------------------------------------------------------------------------
public synchronized PageWrapper processRequest(PageWrapper pWrapper) {
Console.println("inside processRequest urlCurrentPage = "+FISConstants.urlCurrentPage);
if(FISConstants.urlCurrentPage == null) {
Console.println("url is null application is running");
// This Condition will be true if it is run as a application
try {
// Uncomment below 2 lines to run it as a application
// NavigationController aNavController = NavigationController.getInstance();
// pWrapper = aNavController.onEvent(pWrapper);
} catch (Exception e ) {
e.printStackTrace();
}
return pWrapper;
}
if(!connectServlet()) {
pWrapper.setStatus(false);
pWrapper.setErrorMessage("Could not connect to servlet");
return pWrapper;
}
sendRequest(pWrapper);
if(cookie == null) cookie = readCookie(connection);
System.out.println("The value of cookie in the process request is ............... "+ cookie);
return receiveRequest();
}
private boolean sendRequest(PageWrapper pWrapper) {
ObjectOutputStream out = null;
try {
connection.setDoInput(true);
connection.setDoOutput(true);
System.out.println("Inside sendRequest");
out = new ObjectOutputStream(connection.getOutputStream());
out.writeObject(pWrapper);
out.flush();
}
catch (Exception e) {
e.printStackTrace();
return false; //return false in case of Exception
}
finally {
try {
if(out != null)
out.close();
} catch(Exception e) {
Console.println("Unable to close Connection"+e);
}
}
return true;
}
private PageWrapper receiveRequest() {
PageWrapper pWrapper = null;
ObjectInputStream in = null;
try {
System.out.println("Inside receiveRequest");
in = new ObjectInputStream(connection.getInputStream());
System.out.println("The Object Input Stream is .............." + in);
pWrapper = (PageWrapper)in.readObject();
System.out.println("The page wrapper Object is .............." + pWrapper);
}
catch(Exception e) {
e.printStackTrace();
pWrapper = new PageWrapper();
pWrapper.setStatus(false);
pWrapper.setErrorMessage(FISConstants.ERROR_URL);
}
finally {
try {
if(in != null)
in.close();
} catch(Exception e) {
Console.println("Unable to close Connection");
}
return pWrapper;
}
}
private boolean connectServlet() {
try {
connection = (HttpsURLConnection)dataURL.openConnection();
System.out.println("Connecion in connectServlet is ................." + connection);
connection.setUseCaches(false);
connection.setDefaultUseCaches(false);
//Console.println("URL is " + dataURL);
if( cookie != null ) connection.setRequestProperty(FISConstants.COOKIE,cookie);
}
catch (Exception e) {
e.printStackTrace();
return false; //In case of Exception returns false
}
return true;
}
private
String readCookie(URLConnection con) {
String key;
String value;
for( int i = 1; ( key = con.getHeaderFieldKey( i ) )!= null; ++i ){
key = key.toLowerCase();
Console.println("Key is " + key + " Value is " + con.getHeaderField(i));
if( key.equals(FISConstants.SET_COOKIE) ){
value = con.getHeaderField( i );
return value;
}
}
return null;
}
}
SSLContext sslContext = null;
try {
sslContext = SSLContext.getInstance("TLS");
X509TrustManager[] xtmArray = new X509TrustManager[] { xtm };
sslContext.init( null, xtmArray, new java.security.SecureRandom() );
} catch( GeneralSecurityException gse ) {
// Print out some error message and deal with this exception…
}
// Set the default SocketFactory and HostnameVerifier
// for javax.net.ssl.HttpsURLConnection
if( sslContext != null ) {
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory() );
}
HttpsURLConnection.setDefaultHostnameVerifier( hnv );
private X509TrustManager xtm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain,
String authType) {}
public void checkServerTrusted(X509Certificate[] chain,
String authType) {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
//Added by Sambasiva for implementation of Https
private HostnameVerifier hnv = new HostnameVerifier() {
public boolean verify(String hostname,SSLSession session) {
System.out.println("hostname: " + hostname);
return true;
}
};
public void genBatchRun(String args[]) {
}