Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > How to login to a site using cookie? (not applet)

Reply
Thread Tools

How to login to a site using cookie? (not applet)

 
 
anthony.mak@iname.com
Guest
Posts: n/a
 
      07-13-2007
Problem:
-Want to programmatically (a java program) login to a site, and
retrieve the next page.
-Site uses https and POST method.
-Site uses .aspx

Can anyone point me to some tutorials or codes that does this please?
I cannot find any coherent info, different sites say different things
and
I cannot get it work...

Please email to anthony.mak-AT-iname.com

Anthony

 
Reply With Quote
 
 
 
 
Andrew Thompson
Guest
Posts: n/a
 
      07-13-2007
http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:

>-Want to programmatically (a java program) login to a site, ...


What site? URL?

>Please email to anthony.mak-AT-iname.com


Please pay me.

--
Andrew Thompson
http://www.athompson.info/andrew/

Message posted via JavaKB.com
http://www.javakb.com/Uwe/Forums.asp...neral/200707/1

 
Reply With Quote
 
 
 
 
anthony.mak@iname.com
Guest
Posts: n/a
 
      07-13-2007
On Jul 13, 11:57 am, "Andrew Thompson" <u32984@uwe> wrote:
> (E-Mail Removed) wrote:
> >-Want to programmatically (a java program) login to a site, ...

>
> What site? URL?

https://www.commsec.com.au

I am trying to setup a HttpUrlConnection object using:
https://www.commsec.com.au/Default.a...x&Password=yyy
and URLEncoder.encode() the part after "?"
Do I need to treat the password differently, since it is a password
input?

Anthony

 
Reply With Quote
 
Roedy Green
Guest
Posts: n/a
 
      07-13-2007
On Fri, 13 Jul 2007 00:34:25 -0000, (E-Mail Removed) wrote,
quoted or indirectly quoted someone who said :

>Want to programmatically (a java program) login to a site,


see http://mindprod.com/jgloss/authenticator.html

You simply write code to provide id/password and Java magically does
the rest.
--
Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com
 
Reply With Quote
 
Roedy Green
Guest
Posts: n/a
 
      07-13-2007
On Fri, 13 Jul 2007 00:34:25 -0000, (E-Mail Removed) wrote,
quoted or indirectly quoted someone who said :

>-Site uses https and POST method.


IIRC it is exactly the same as a regular post, except you use a https
url.

See http://mindprod.com/products1.html#HTTP
--
Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com
 
Reply With Quote
 
Roedy Green
Guest
Posts: n/a
 
      07-13-2007
On Fri, 13 Jul 2007 14:17:45 -0000, (E-Mail Removed) wrote,
quoted or indirectly quoted someone who said :

>I am trying to setup a HttpUrlConnection object using:
>https://www.commsec.com.au/Default.a...x&Password=yyy
>and URLEncoder.encode() the part after "?"
>Do I need to treat the password differently, since it is a password
>input?


you never send a password in plaintext. Authenticator does it all for
you.

http://mindprod.com/jgloss/authentication.html
--
Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com
 
Reply With Quote
 
anthony.mak@iname.com
Guest
Posts: n/a
 
      07-14-2007
On Jul 14, 2:24 am, Roedy Green <(E-Mail Removed)>
wrote:
>
> seehttp://mindprod.com/jgloss/authenticator.html
>
> You simply write code to provide id/password and Java magically does
> the rest.
> --
> Roedy Green Canadian Mind Products
> The Java Glossaryhttp://mindprod.com


Thanks Roedy.

What about Cookie? Firefox stores this cookie called "stn"
after I logged in, but if I delete this cookie and refresh,
I will be kicked back to the front login screen. So I think
it is the session id cookie. Don't I need to send back
a session id every time I POST?

Also, how does the Autheticator knows what are the <input>
names for the username and password? Shouldn't they be specified
somehow? (for this site, they are "LoginName" and "Password")

Below is my attempt using the Autheticator, but instead of
next_page being the string of the next page after a successful login,
it returned the front page of the site. So the method is not
successful. Do you have any idea what is wrong?

Many thanks!

Anthony

My Code
========
import java.net.*;
import java.io.*;

public class Test2 {

private String login_url_str = "https://www.comsec.com.au/
Default.aspx";

public Test2() {
}

public static void main(String[] args) {
Test2 test1 = new Test2();
test1.execute();
}

private void execute() {
//Setup for https
java.security.Security.addProvider(new
com.sun.net.ssl.internal.ssl.
Provider());
System.setProperty("java.protocol.handler.pkgs",
"com.sun.net.ssl.internal.www.protocol");

Authenticator.setDefault( new MyAuthenticator() );

try {
URL url = new URL(login_url_str);
//For handling POST request
String next_page = getURLPostString(url,"");
System.out.println(next_page);

} catch (IOException ex) {
System.out.println(ex);
System.exit(1);
}

}

/** Post a string to an URL and get the reply as a string. Returns
an empty
string if things didn't work out. */
//code from: http://martin.nobilitas.com/java/cookies.html
private String getURLPostString(URL url, String body) {
StringBuffer sb = new StringBuffer();

// find the newline character(s) on the current system
String newline = null;
try {
newline = System.getProperty("line.separator");
} catch (Exception e) {
newline = "\n";
}

try {
// URL must use the http protocol!
HttpURLConnection conn = (HttpURLConnection)
url.openConnection();

conn.setRequestMethod("POST");
conn.setAllowUserInteraction(false); // you may not ask
the user
conn.setDoOutput(true); // we want to send things
// the Content-type should be default, but we set it
anyway
conn.setRequestProperty("Content-type",
"application/x-www-form-
urlencoded");
// the content-length should not be necessary, but we're
cautious
conn.setRequestProperty("Content-length",
Integer.toString(body.length()));

// get the output stream to POST our form data
OutputStream rawOutStream = conn.getOutputStream();
PrintWriter pw = new PrintWriter(rawOutStream);

pw.print(body); // here we "send" our body!
pw.flush();
pw.close();

// get the input stream for reading the reply
// IMPORTANT! Your body will not get transmitted if you
get the
// InputStream before completely writing out your output
first!
InputStream rawInStream = conn.getInputStream();

// get response
BufferedReader rdr = new BufferedReader(new
InputStreamReader(
rawInStream));
String line;

while ((line = rdr.readLine()) != null) {
sb.append(line);
sb.append(newline);
}
return sb.toString();
} catch (Exception e) {
System.out.println("Exception " + e.toString());
e.printStackTrace();
}
return ""; // an exception occurred
}


}


class MyAuthenticator extends Authenticator
{
/**
* Called when password authorization is needed.
* @return The PasswordAuthentication collected from the
* user, or null if none is provided.
*/
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication ( "usernameblah",
"passwordblah".toCharArray() );
}
}



 
Reply With Quote
 
anthony.mak@iname.com
Guest
Posts: n/a
 
      07-14-2007
On Jul 14, 2:25 am, Roedy Green <(E-Mail Removed)>
wrote:
> Seehttp://mindprod.com/products1.html#HTTP


How is this relate to the Authenticator you mentioned?
If I use the Authenticator, do I need to use your "HTTP GET/POST"
library?

Anthony

 
Reply With Quote
 
anthony.mak@iname.com
Guest
Posts: n/a
 
      07-14-2007
On Jul 14, 2:25 am, Roedy Green <(E-Mail Removed)>
wrote:
> Seehttp://mindprod.com/products1.html#HTTP


How is this relate to the Authenticator you mentioned?
If I use the Authenticator, do I need to use your "HTTP GET/POST"
library?

Anthony

 
Reply With Quote
 
Andrew Thompson
Guest
Posts: n/a
 
      07-14-2007
(E-Mail Removed) wrote:
>> (E-Mail Removed) wrote:
>> >-Want to programmatically (a java program) login to a site, ...

>>
>> What site? URL?


>https://www.commsec.com.au


Oh.. *Bastard* Bank! You should have said..

--
Andrew Thompson
http://www.athompson.info/andrew/

Message posted via JavaKB.com
http://www.javakb.com/Uwe/Forums.asp...neral/200707/1

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
form based login in jboss using login-config not working manu Java 1 07-20-2008 10:49 PM
Posting to remote site to login and then redirect to site BradM ASP .Net 2 05-30-2007 12:29 AM
Can't create simple login page using asp:login control Sasquatch ASP .Net 2 10-03-2006 09:22 PM
Login using NT login details from web form problems DavidADEW ASP .Net 2 09-01-2006 03:10 PM



Advertisments