Hi All,

I have a web application its client side is an applet and it loads data from server part using classic HTTP communication. I have development server inside company's intranet. When I join that network via VPN, the applet throws security exception java.net.SocketException: Permission denied: connect even though applet requests data from the same location it was loaded from. And when I'm at work and do not need to connect using VPN, it works correctly.

My environment is: Windows 7 32bit, Java 7, Cisco AnyConnect utility for VPN connection to company's network.

I've read a lot of articles and it seems there is an issue in combination of Java 7, Windows Vista/7 and Cisco AnyConnect utility with respect to IPv6 protocol support. And suggested solution is to disable IPv6 support in Cisco network adapter settings either setting up the JVM
Java Code:
-Djava.net.preferIPv4Stack=true
.
But the problem is that both solutions which really work have to be set up on client machine and I'm trying to avoid any end user's burden in setting up his environment to be able to use my SW.
So I've came up with an idea to pass that argument for setting up JVM as applet parameter as described here: Applet Deployment. So my applet parameters look like here:
Java Code:
<applet ....>
    <param name="java_arguments" value="-Djava.net.preferIPv4Stack=true"/>
    <param name="separate_jvm" value="true"/>
</applet>
Unfortunately, it does not work at all even if I try another option to use separate JVM.
Question is: Does anyone know why setting the option -Djava.net.preferIPv4Stack=true in client JVM solves my issue and if I do the same via applet parameter, it does not work?

Thanks.
Best regards

xmikul28