Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

JAAS + JWS + JBOSS

843802Jan 28 2008 — edited Feb 13 2008
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
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 12 2008
Added on Jan 28 2008
1 comment
447 views