Are you sending back any cookies you've received? (i.e. the session cookie)
On Mon, Mar 10, 2008 at 6:00 AM, Sven Feldberg <[EMAIL PROTECTED]>
wrote:
> Hi to all,
> I'm looking for a solution to my problem. First of all I have to program a
> Java client based on Apache HTTPClient. The user must feed his username and
> password as parameter in this application. The CAS server should
> authenticate the user. The client does two requests to CAS server. For the
> first GET request to ".../cas/login" get the client as response a normal
> login page. From this response I can extract a login ticket and construct a
> second POST request with tree parameters: username, password and lt. For
> this POST request I should get a response about my successful or not
> authentication. But the problem is I get the same login page back. I've
> installed the CAS server in the Tomcat. I don't know what can I do else? Can
> somebody help me with my problem? Maybe I should make some changes in CAS
> settings? Here is the source code that I've used:
>
> static String service = "www.google.de";
> static String LOGON_SITE = "localhost";
> static int LOGON_PORT = 8080;
>
> public static void StartHTTPClient()
> {
> try{
> HttpClient client = new HttpClient();
> client.getHostConfiguration().setHost(LOGON_SITE,
> LOGON_PORT, "http");
> client.getParams().setCookiePolicy(
> CookiePolicy.BROWSER_COMPATIBILITY);
> client.getParams().setParameter("
> http.protocol.content-charset", "UTF-8");
> GetMethod authget = new GetMethod("/cas/login");
> NameValuePair serv = new NameValuePair("service",service);
> client.executeMethod(authget);
> System.out.println("Login form get: " +
> authget.getStatusLine().toString());
> String response=authget.getResponseBodyAsString();
> System.out.println("Server response:\n" + response.trim());
> int c1=response.indexOf("name=\"lt\"", 0);
> System.out.println(c1);
> String lt=response.substring(c1+17, c1+93);
> System.out.println(lt);
> int c2=response.indexOf("method=\"post\" action=\"", 0);
> System.out.println(c2);
> String path=response.substring(c2+27,
> c2+85+service.length());
> System.out.println(path);
> // release any connection resources used by the method
> authget.releaseConnection();
>
> PostMethod authpost = new PostMethod("/cas/login");
> // Prepare login parameters
> NameValuePair ltP = new NameValuePair("lt", lt);
> NameValuePair userid = new NameValuePair("username",
> URLEncoder.encode("aaaa", "UTF-8"));
> NameValuePair password = new NameValuePair("password",
> URLEncoder.encode("aaaa", "UTF-8"));
> authpost.setRequestBody(new NameValuePair[] {ltP, userid,
> password});
>
> //authpost.setDoAuthentication(true);
> client.executeMethod(authpost);
> System.out.println("Login form post: " +
> authpost.getStatusLine().toString());
> // release any connection resources used by the method
> System.out.println(authpost.getResponseBodyAsString());
> authpost.releaseConnection();
>
> int statuscode = authpost.getStatusCode();
> if ((statuscode == HttpStatus.SC_MOVED_TEMPORARILY) ||
> (statuscode == HttpStatus.SC_MOVED_PERMANENTLY) ||
> (statuscode == HttpStatus.SC_SEE_OTHER) ||
> (statuscode == HttpStatus.SC_TEMPORARY_REDIRECT)) {
> Header header = authpost.getResponseHeader("location");
> if (header != null) {
> String newuri = header.getValue();
> if ((newuri == null) || (newuri.equals(""))) {
> newuri = "/";
> }
> System.out.println("Redirect target: " + newuri);
> GetMethod redirect = new GetMethod(newuri);
>
> client.executeMethod(redirect);
> System.out.println("Redirect: " +
> redirect.getStatusLine().toString());
> // release any connection resources used by the
> method
> redirect.releaseConnection();
> } else {
> System.out.println("Invalid redirect");
> System.exit(1);
> }
> }
> }
> catch(Exception exc)
> {
> System.out.println(exc.toString());
> }
> }
>
> Thanks.
>
> Regards Sven
> _______________________________________________
> Yale CAS mailing list
> [email protected]
> http://tp.its.yale.edu/mailman/listinfo/cas
>
--
-Scott Battaglia
PGP Public Key Id: 0x383733AA
LinkedIn: http://www.linkedin.com/in/scottbattaglia
_______________________________________________
Yale CAS mailing list
[email protected]
http://tp.its.yale.edu/mailman/listinfo/cas