You are viewing a plain text version of this content. The canonical link for it is here.
Posted to httpclient-users@hc.apache.org by Mark Wyszomierski <ma...@gmail.com> on 2008/03/15 00:22:46 UTC

Getting HttpClient to work in java applet (works ok in local app)

Hi,

I'm trying to use HttpClient.execute() inside a java applet. I have it
working fine in a local application. I got my applet signed via the
instructions here:

    http://forum.java.sun.com/thread.jspa?threadID=174214

now the web page the applet is hosted in asks for user approval, ok,
agreed to the certificate. Still though, a call to HttpClient.execute
fails when run from the applet. Here's how the code is being used:

    HttpClient client = new HttpClient();
    PostMethod requestMethod = new PostMethod(postURL);
    requestMethod.setRequestHeader("Content-Type", "application/json");
    RequestEntity requestEntity = new StringRequestEntity(postJSON);
    requestMethod.setRequestEntity(requestEntity);
    status = client.executeMethod(requestMethod);

The last call (execute()) generates an exception, this is the stack trace:

java.security.AccessControlException: access denied
(java.net.SocketPermission api.mysite.com resolve)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkConnect(Unknown Source)
	at java.net.InetAddress.getAllByName0(Unknown Source)
	at java.net.InetAddress.getAllByName(Unknown Source)
	at java.net.InetAddress.getAllByName(Unknown Source)
	at java.net.InetAddress.getByName(Unknown Source)
	at java.net.InetSocketAddress.<init>(Unknown Source)
	at java.net.Socket.<init>(Unknown Source)
	at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
	at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
	at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
	at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
	at myapplet.makeHttpRequest(myapplet.java:79)
	at java.lang.Thread.run(Unknown Source)

Well, I thought after going through the signing procedure, that would
have given me the right permissions. Perhaps I'm missing something
else though? Any ideas would be great,

Thanks,
Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org


Re: Getting HttpClient to work in java applet (works ok in local app)

Posted by Oleg Kalnichevski <ol...@apache.org>.
On Fri, 2008-03-14 at 19:22 -0400, Mark Wyszomierski wrote:
> Hi,
> 
> I'm trying to use HttpClient.execute() inside a java applet. 
>
> I have it
> working fine in a local application. I got my applet signed via the
> instructions here:
> 
>     http://forum.java.sun.com/thread.jspa?threadID=174214
> 
> now the web page the applet is hosted in asks for user approval, ok,
> agreed to the certificate. Still though, a call to HttpClient.execute
> fails when run from the applet. Here's how the code is being used:
> 
>     HttpClient client = new HttpClient();
>     PostMethod requestMethod = new PostMethod(postURL);
>     requestMethod.setRequestHeader("Content-Type", "application/json");
>     RequestEntity requestEntity = new StringRequestEntity(postJSON);
>     requestMethod.setRequestEntity(requestEntity);
>     status = client.executeMethod(requestMethod);
> 
> The last call (execute()) generates an exception, this is the stack trace:
> 
> java.security.AccessControlException: access denied
> (java.net.SocketPermission api.mysite.com resolve)
> 	at java.security.AccessControlContext.checkPermission(Unknown Source)
> 	at java.security.AccessController.checkPermission(Unknown Source)
> 	at java.lang.SecurityManager.checkPermission(Unknown Source)
> 	at java.lang.SecurityManager.checkConnect(Unknown Source)
> 	at java.net.InetAddress.getAllByName0(Unknown Source)
> 	at java.net.InetAddress.getAllByName(Unknown Source)
> 	at java.net.InetAddress.getAllByName(Unknown Source)
> 	at java.net.InetAddress.getByName(Unknown Source)
> 	at java.net.InetSocketAddress.<init>(Unknown Source)
> 	at java.net.Socket.<init>(Unknown Source)
> 	at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
> 	at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
> 	at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
> 	at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
> 	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
> 	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
> 	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
> 	at myapplet.makeHttpRequest(myapplet.java:79)
> 	at java.lang.Thread.run(Unknown Source)
> 
> Well, I thought after going through the signing procedure, that would
> have given me the right permissions. Perhaps I'm missing something
> else though? Any ideas would be great,
> 

Have you signed each and every jar used in the applet?

Oleg


> Thanks,
> Mark
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> For additional commands, e-mail: httpclient-users-help@hc.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org