[jboss-user] [Security & JAAS/JBoss] - using Java 6 Kerberos provider for http client connections

Arvoreen do-not-reply at jboss.com
Wed May 9 16:44:01 EDT 2007


So I have a web app that does not define ANY authentication requirements (legacy app, handles authentication/authorization internally).

This application is also making client http connections to other resources and it needs to do so using the integrated Java 6 kerberos login provider, so that it can connect via NTLM and/or SPNEGGO to Windows pages.

However, when I first make the client connection attempt, I get 

  | org.jboss.security.auth.spi.UsersRolesLoginModule Failed to load users/passwords/role files
  | java.io.IOException: No properties file: users.properties or defaults: defaultUsers.properties found
  | 	at org.jboss.security.auth.spi.Util.loadProperties(Util.java:315)
  | 	at org.jboss.security.auth.spi.UsersRolesLoginModule.loadUsers(UsersRolesLoginModule.java:186)
  | 	at org.jboss.security.auth.spi.UsersRolesLoginModule.createUsers(UsersRolesLoginModule.java:200)
  | 	at org.jboss.security.auth.spi.UsersRolesLoginModule.initialize(UsersRolesLoginModule.java:127)
  | 	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:597)
  | 	at javax.security.auth.login.LoginContext.invoke(LoginContext.java:756)
  | 	at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
  | 	at javax.security.auth.login.LoginContext$5.run(LoginContext.java:706)
  | 	at java.security.AccessController.doPrivileged(Native Method)
  | 	at javax.security.auth.login.LoginContext.invokeCreatorPriv(LoginContext.java:703)
  | 	at javax.security.auth.login.LoginContext.login(LoginContext.java:575)
  | 	at sun.security.jgss.GSSUtil.login(GSSUtil.java:246)
  | 	at sun.security.jgss.krb5.Krb5Util.getTicket(Krb5Util.java:136)
  | 	at sun.security.jgss.krb5.Krb5InitCredential$1.run(Krb5InitCredential.java:331)
  | 	at java.security.AccessController.doPrivileged(Native Method)
  | 	at sun.security.jgss.krb5.Krb5InitCredential.getTgt(Krb5InitCredential.java:328)
  | 	at sun.security.jgss.krb5.Krb5InitCredential.getInstance(Krb5InitCredential.java:128)
  | 	at sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement(Krb5MechFactory.java:106)
  | 	at sun.security.jgss.krb5.Krb5MechFactory.getMechanismContext(Krb5MechFactory.java:172)
  | 	at sun.security.jgss.GSSManagerImpl.getMechanismContext(GSSManagerImpl.java:209)
  | 	at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:195)
  | 	at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:162)
  | 	at sun.security.jgss.spnego.SpNegoContext.GSS_initSecContext(SpNegoContext.java:846)
  | 	at sun.security.jgss.spnego.SpNegoContext.initSecContext(SpNegoContext.java:304)
  | 	at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:230)
  | 	at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:162)
  | 	at sun.net.www.protocol.http.NegotiatorImpl.init(NegotiatorImpl.java:86)
  | 	at sun.net.www.protocol.http.NegotiatorImpl.<init>(NegotiatorImpl.java:95)
  | 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  | 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  | 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
  | 	at sun.net.www.protocol.http.Negotiator.getSupported(NegotiateAuthentication.java:265)
  | 	at sun.net.www.protocol.http.NegotiateAuthentication.isSupported(NegotiateAuthentication.java:106)
  | 	at sun.net.www.protocol.http.AuthenticationHeader.parse(AuthenticationHeader.java:170)
  | 	at sun.net.www.protocol.http.AuthenticationHeader.<init>(AuthenticationHeader.java:119)
  | 	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1070)
  | 	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
  | 

So I tried to setup an auth policy that points directly to the KRB5 modules in the login-config.xml


  |    <!-- KRB5 Policy -->
  |     <application-policy name="krb5">
  |        <authentication>
  |           <login-module code="com.sun.security.auth.module.Krb5LoginModule" flag="required">
  |             <module-option name="storeKey">true</module-option>
  |             <module-option name="keyTab">/etc/eonkeytab</module-option>
  |             <module-option name="doNotPrompt">true</module-option>
  |             <module-option name="useKeyTab">true</module-option>
  |             <module-option name="realm">AMS.GBLXINT.COM</module-option>
  |             <module-option name="principal">HTTP/dlktzt79.ams.gblxint.com at AMS.GBLXINT.COM</module-option>
  |             <module-option name="useTicketCache">true</module-option>
  |             <module-option name="debug">true</module-option>
  |           </login-module>
  |        </authentication>
  |     </application-policy>
  | 

and added the following to the jboss-web.xml

  | <security-domain>java:/jaas/krb5</security-domain>
  | 

No luck whatsoever...same errors occuring.

Anyone have any pointers?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4044480#4044480

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4044480



More information about the jboss-user mailing list