Question

Everyday I need to do a routine, connect to a remote address, authenticate with my smart card and then check any new information for my username at this remote address.

I would like to do this routine automatic, create a Java application that would connect to the address, authenticate with the smart card and then check if there is any new information.

I tryed, but had no success to set the HttpClient enviorment with the smartcard, I pluged the card at my machine and set the Cronjob to run, it returns the warning about having no card inserted.

The code is below:

HttpClient httpClient = new DefaultHttpClient();
            // Secure Protocol implementation.
            SSLContext ctx = SSLContext.getInstance("SSL");
            // Implementation of a trust manager for X509 certificates
            X509TrustManager tm = new X509TrustManager() {

                public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                    return null;
                }

                public void checkClientTrusted(java.security.cert.X509Certificate[] arg0, String arg1)  throws java.security.cert.CertificateException {
                    // TODO Auto-generated method stub
                }

                @Override
                public void checkServerTrusted(
                        java.security.cert.X509Certificate[] arg0, String arg1)
                        throws java.security.cert.CertificateException {
                    // TODO Auto-generated method stub

                }
            };
            ctx.init(null, new TrustManager[] { tm }, null);
            SSLSocketFactory ssf = new SSLSocketFactory(ctx);

            ClientConnectionManager ccm = httpClient.getConnectionManager();
            // register https protocol in httpclient's scheme registry
            SchemeRegistry sr = ccm.getSchemeRegistry();
            sr.register(new Scheme("https", 443, ssf));

            HttpGet httpget = new HttpGet("http://remoteserver.com/login.seam");
            HttpParams params = httpclient.getParams();

            params.setParameter("param1", "paramValue1");

            httpget.setParams(params);
            System.out.println("REQUEST:" + httpget.getURI());
            ResponseHandler responseHandler = new BasicResponseHandler();
            String responseBody;

            responseBody = httpclient.execute(httpget, responseHandler);

            System.out.println(responseBody);

Is there any help with it? I searched a lot, but I´m not able to connect using the smart card...

Thanks in advance and sorry for my bad english.

Was it helpful?

Solution

We don't see your code about the smartcard reader. In the first time you have to get informations from your smartcard. Try to see how to use the smartcardio library. Then send all information from your application to web.

I think that it can help you if I understood your problem.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top