Hi j2ee_junkie! I'm trying to implement my own LoginModule, again without having to configure any external config files.
I have the Login module, but I can't make it use it without changing the server/conf/login-config.xml. I'm using the Embedded Login Configuration in http://wiki.jboss.org/wiki/Wiki.jsp?page=DynamicLoginConfig I'm putting that into a .sar file as you describe: | GF.ear | +--> GF.sar | +--> META-INF | | +--> jboss-service.xml | +--> CustomLoginModules.jar | +-->com/fcl/security/GreenfieldsLoginModule.class | +--> ejbs.jar | +--> webapp.war jboss-service.xml looks like | <?xml version='1.0'?> | <!DOCTYPE policy PUBLIC | "-//JBoss//DTD MBean Service 4.0//EN" | "http://www.jboss.org/j2ee/dtd/jboss-service_4_0.dtd"> | <server> | <!-- The custom JAAS login configuration that installs | a Configuration capable of dynamically updating the | config settings | --> | <mbean code="org.jboss.security.auth.login.DynamicLoginConfig" | name="jboss.security.tests:service=LoginConfig"> | <attribute name="PolicyConfig" serialDataType="jbxb"> | <jaas:policy | xsi:schemaLocation="urn:jboss:security-config:4.1 resource:security-config_4_1.xsd" | xmlns:jaas="urn:jboss:security-config:4.1" | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | | <!-- Our Greenfields login config --> | <jaas:application-policy name="Greenfields"> | <jaas:authentication> | <jaas:login-module code="com.fcl.security.GreenfieldsLoginModule" flag="required"> | <jaas:module-option name="unauthenticatedIdentity">anonymous</jaas:module-option> | <jaas:module-option name="principalClass">com.fcl.security.GreenfieldsUser</jaas:module-option> | <jaas:module-option name="ignorePasswordCase">true</jaas:module-option> | </jaas:login-module> | | <!-- Include the ClientLoginModule propagation --> | <jaas:login-module code="org.jboss.security.ClientLoginModule" flag="required"> | <jaas:module-option name="password-stacking">true</jaas:module-option> | <jaas:module-option name="multi-threaded">true</jaas:module-option> | </jaas:login-module> | | </jaas:authentication> | </jaas:application-policy> | </jaas:policy> | </attribute> | <depends optional-attribute-name="LoginConfigService"> | jboss.security:service=XMLLoginConfig | </depends> | <depends optional-attribute-name="SecurityManagerService"> | jboss.security:service=JaasSecurityManager | </depends> | </mbean> | </server> | But it's producing: 14:40:55,031 ERROR [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:313) | 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:585) | 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$4.run(LoginContext.java:683) | at java.security.AccessController.doPrivileged(Native Method) | at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) | at javax.security.auth.login.LoginContext.login(LoginContext.java:579) | at org.jboss.security.plugins.JaasSecurityManager.defaultLogin(JaasSecurityManager.java:587) | at org.jboss.security.plugins.JaasSecurityManager.authenticate(JaasSecurityManager.java:521) | at org.jboss.security.plugins.JaasSecurityManager.isValid(JaasSecurityManager.java:330) | at org.jboss.web.tomcat.security.JBossSecurityMgrRealm.authenticate(JBossSecurityMgrRealm.java:306) | at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:256) | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:416) | at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868) | at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663) | at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) | at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) | at java.lang.Thread.run(Thread.java:595) One more thing. Even when it called my LoginModule correctly - when I had edited the server's login-config.xml, the SessionContext.getCallerPrincipal() still returned an JBoss SimplePrincipal rather than the GreenFieldsUser object that I specified (and which is correctly produced by session.getUserPrincipal()) View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3931355#3931355 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3931355 ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ JBoss-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jboss-user
