I am trying to get JAAS to work under Java Web Start. When run as application, everything works:
java -Djava.security.auth.login.config=auth.conf -classpath JWSLogin.jar:jbossall-client.jar:$CLASSPATH JWSLogin
When I run using Java Web Start here it the error I get:
java.security.AccessControlException: access denied (javax.security.auth.AuthPermission createLoginContext.net)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
at java.security.AccessController.checkPermission(AccessController.java:427)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at javax.security.auth.login.LoginContext.init(LoginContext.java:224)
at javax.security.auth.login.LoginContext.<init>(LoginContext.java:403)
at JWSLogin.main(JWSLogin.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.sun.javaws.Launcher.executeApplication(Launcher.java:1108)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1055)
at com.sun.javaws.Launcher.continueLaunch(Launcher.java:898)
at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:469)
at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:217)
at com.sun.javaws.Launcher.run(Launcher.java:164)
at java.lang.Thread.run(Thread.java:595)
Here is my auth.conf file:
net
{
org.jboss.security.ClientLoginModule required
password-stacking="useFirstPass"
;
};
Here is my security.policy file:
grant {
permission java.security.AllPermission;
};
Here is my jndi.properties file:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://192.168.10.31:1099
Here is my client.jnlp:
<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File for testing Jaas + Java Web Start + JBoss-->
<jnlp
spec="1.0+"
codebase="http://192.168.10.31:8080/JWSLogin/"
href="client.jnlp">
<information>
<title>Jaas + Java Web Start + JBoss</title>
<vendor>My Test</vendor>
<homepage href="http://www.mytest.com"/>
<description>Test for Jaas + Java Web Start + JBoss</description>
<description kind="short">Test for Jaas + Java Web Start + JBoss</description>
<description kind="tooltip">Test for Jaas + Java Web Start + JBoss</description>
</information>
<resources>
<j2se version="1.5+"/>
<jar href="JWSLogin.jar" />
<jar href="jbossall-client.jar" />
<property name="java.security.auth.login.config"
value="jar:http://192.168.10.31:8080/JWSLogin/JWSLogin.jar!/auth.conf"
/>
<!--<property name="java.security.policy"
value="jar:http://192.168.10.31:8080/JWSLogin/JWSLogin.jar!/security.policy" />-->
</resources>
<application-desc main-class="JWSLogin">
<argument>user</argument>
<argument>passwd</argument>
</application-desc>
</jnlp>
Here is my JWSLogin code:
import javax.security.auth.Subject;
import javax.security.auth.login.LoginContext;
import javax.security.auth.login.FailedLoginException;
import javax.security.auth.login.LoginException;
public class JWSLogin
{
public static void main(String args[])
{
String userName = null;
char[] password;
userName = args[0];
password = args[1].toCharArray();
try
{
System.out.print("loginContext = ");
LoginContext loginContext;
loginContext =
new LoginContext("net",
new org.jboss.security.auth.callback.UsernamePasswordHandler(userName, password));
System.out.println(loginContext.toString());
loginContext.login();
System.out.print("loginContext.login = ");
Subject subject = loginContext.getSubject();
System.out.println("subject = " + subject.toString());
}
catch (FailedLoginException e1)
{
e1.printStackTrace();
}
catch (LoginException e1)
{
e1.printStackTrace();
}
catch (SecurityException e1)
{
e1.printStackTrace();
}
}
}
Here are the contents of JWSLogin.jar (jar tf JWSLogin.jar) file:
META-INF/
META-INF/MANIFEST.MF
auth.conf
JWSLogin.class
jndi.properties
security.policy
Java version: Version 1.5.0 (build 1.5.0_05-b05)
Any help in getting this working would be appreciated.
Shay