You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by mahu2425 <ma...@lycos.de> on 2006/07/03 10:04:45 UTC

Creating security realm in 1.1 fails

Hi there,

I played a bit around with Geronimo 1.1 (Jetty version) and it seems that it's not possible in 1.1 to create new SQL based securtiy realm using the console.

I always receive an error:
Error: Error: Unable to initialize LoginModule: Unable to load, instantiate, register driver null: null

The Geronimo logfile says: 


09:49:15,142 ERROR [SecurityRealmPortlet] Unable to parse ObjectName
javax.management.MalformedObjectNameException: Missing ':' character in ObjectName
	at javax.management.ObjectName.parseDomain(ObjectName.java:417)
	at javax.management.ObjectName.parse(ObjectName.java:385)
	at javax.management.ObjectName.<init>(ObjectName.java:76)
	at javax.management.ObjectName.getInstance(ObjectName.java:261)
	at org.apache.geronimo.console.securitymanager.realm.SecurityRealmPortlet$RealmData.load(SecurityRealmPortlet.java:775)
	at org.apache.geronimo.console.securitymanager.realm.SecurityRealmPortlet.processAction(SecurityRealmPortlet.java:167)
	at org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:229)
	at org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:158)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
	at org.apache.pluto.core.PortletServlet.service(PortletServlet.java:153)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
	at org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:97)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
	at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
	at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
	at org.apache.geronimo.jetty.JettyWebApplicationHandler.dispatch(JettyWebApplicationHandler.java:58)
	at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:283)
	at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:163)
	at org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120)
	at org.apache.pluto.invoker.impl.PortletInvokerImpl.action(PortletInvokerImpl.java:68)
	at org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContainerImpl.java:164)
	at org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.processPortletAction(PortletContainerWrapperImpl.java:82)
	at org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:227)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
	at org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:97)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
	at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
	at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
	at org.apache.geronimo.jetty.JettyWebApplicationHandler.dispatch(JettyWebApplicationHandler.java:58)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
	at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
	at org.mortbay.http.HttpServer.service(HttpServer.java:909)
	at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
	at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
	at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
	at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
	at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
	at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
09:49:15,142 WARN  [SecurityRealmPortlet] Testing with options {org.apache.geronimo.security.realm.GenericSecurityRealm.CLASSLOADER=[org.apache.geronimo.kernel.classloader.JarFileClassLoader id=geronimo/webconsole-jetty_standard.war/1.1/car], groupSelect=select userid, groupname from groups where userid=?, userSelect=select userid, password from users where userid=?}
09:49:15,142 WARN  [SecurityRealmPortlet] Unable to initialize LoginModule
java.lang.IllegalArgumentException: Unable to load, instantiate, register driver null: null
	at org.apache.geronimo.security.realm.providers.SQLLoginModule.initialize(SQLLoginModule.java:145)
	at org.apache.geronimo.console.util.KernelManagementHelper.testLoginModule(KernelManagementHelper.java:389)
	at org.apache.geronimo.console.util.PortletManager.testLoginModule(PortletManager.java:154)
	at org.apache.geronimo.console.securitymanager.realm.SecurityRealmPortlet.actionTestLoginModuleLoad(SecurityRealmPortlet.java:265)
	at org.apache.geronimo.console.securitymanager.realm.SecurityRealmPortlet.processAction(SecurityRealmPortlet.java:183)
	at org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:229)
	at org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:158)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
	at org.apache.pluto.core.PortletServlet.service(PortletServlet.java:153)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
	at org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:97)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
	at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
	at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
	at org.apache.geronimo.jetty.JettyWebApplicationHandler.dispatch(JettyWebApplicationHandler.java:58)
	at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:283)
	at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:163)
	at org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120)
	at org.apache.pluto.invoker.impl.PortletInvokerImpl.action(PortletInvokerImpl.java:68)
	at org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContainerImpl.java:164)
	at org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.processPortletAction(PortletContainerWrapperImpl.java:82)
	at org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:227)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
	at org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:97)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
	at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
	at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
	at org.apache.geronimo.jetty.JettyWebApplicationHandler.dispatch(JettyWebApplicationHandler.java:58)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
	at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
	at org.mortbay.http.HttpServer.service(HttpServer.java:909)
	at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
	at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
	at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
	at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
	at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
	at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)






Here is what I did to create the security realm on a fresh Geronimo 1.1 installation:

1. Create a new database called testdb, create and fill tables for users and groups

SQL statements:

create table users (
userid varchar(15) primary key,
password varchar(15),
username varchar(20)
);

create table groups (
userid varchar(15),
groupname varchar(20),
primary key (userid, groupname)
);

insert into users values ('admin', 'password', 'Administrator');
insert into groups values ('admin', 'AdminGroup');


2. Create Database pool (Database Pools -> Using the Geronimo database pool wizard)

Step 1
- Name: testpool
- Database type: Derby embedded

Step 2:
- JDBC Driver (pre defined value): org.apache.derby.jdbc.EmbeddedDriver
- Driver JAR: org.apache.derby/derby/10.1.1.0/jar
- Database: testdb

Step 3:
JDBC connect url (pre defined): jdbc:derby:testdb


3. Create Security Realm (Security Realms -> Add new security realm)

Step 1:
- Name of realm: testrealm
- Realm type: Database (SQL) Realm
- User select SQL: select userid, password from users where userid=?
- Group select: select userid, groupname from groups where userid=?
- Database pool: testpool


And here is where it ends with the error above. Has anybody an idea what's going wrong?

Best regards,

Markus

Stelle Deine Fragen bei Lycos iQ -  http://iq.lycos.de/qa/ask/

Re: Creating security realm in 1.1 fails

Posted by Aaron Mulder <am...@alumni.princeton.edu>.
Can you file a Jira issue for this with the stack traces in your
message?  It looks like we forgot a spot when converting the 1.0
naming syntax to 1.1.  We'll need to release an updated console to fix
this.  Unfortunately, in the mean time, you'd have to create a
security realm plan by hand for 1.1.

Thanks,
    Aaron

On Mon Jul 03 08:04:45 GMT+00:00 2006, mahu2425 <ma...@lycos.de> wrote:
> Hi there,
>
> I played a bit around with Geronimo 1.1 (Jetty version) and it seems that it's not possible in 1.1 to create new SQL based securtiy realm using the console.
>
> I always receive an error:
> Error: Error: Unable to initialize LoginModule: Unable to load, instantiate, register driver null: null
>
> The Geronimo logfile says:
>
>
> 09:49:15,142 ERROR [SecurityRealmPortlet] Unable to parse ObjectName
> javax.management.MalformedObjectNameException: Missing ':' character in ObjectName
>         at javax.management.ObjectName.parseDomain(ObjectName.java:417)
>         at javax.management.ObjectName.parse(ObjectName.java:385)
>         at javax.management.ObjectName.<init>(ObjectName.java:76)
>         at javax.management.ObjectName.getInstance(ObjectName.java:261)
>         at org.apache.geronimo.console.securitymanager.realm.SecurityRealmPortlet$RealmData.load(SecurityRealmPortlet.java:775)
>         at org.apache.geronimo.console.securitymanager.realm.SecurityRealmPortlet.processAction(SecurityRealmPortlet.java:167)
>         at org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:229)
>         at org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:158)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>         at org.apache.pluto.core.PortletServlet.service(PortletServlet.java:153)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
>         at org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:97)
>         at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
>         at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170)
>         at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>         at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
>         at org.apache.geronimo.jetty.JettyWebApplicationHandler.dispatch(JettyWebApplicationHandler.java:58)
>         at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:283)
>         at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:163)
>         at org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120)
>         at org.apache.pluto.invoker.impl.PortletInvokerImpl.action(PortletInvokerImpl.java:68)
>         at org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContainerImpl.java:164)
>         at org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.processPortletAction(PortletContainerWrapperImpl.java:82)
>         at org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:227)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
>         at org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:97)
>         at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
>         at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170)
>         at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>         at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
>         at org.apache.geronimo.jetty.JettyWebApplicationHandler.dispatch(JettyWebApplicationHandler.java:58)
>         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
>         at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
>         at org.mortbay.http.HttpServer.service(HttpServer.java:909)
>         at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
>         at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
>         at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
>         at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
>         at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
>         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
> 09:49:15,142 WARN  [SecurityRealmPortlet] Testing with options {org.apache.geronimo.security.realm.GenericSecurityRealm.CLASSLOADER=[org.apache.geronimo.kernel.classloader.JarFileClassLoader id=geronimo/webconsole-jetty_standard.war/1.1/car], groupSelect=select userid, groupname from groups where userid=?, userSelect=select userid, password from users where userid=?}
> 09:49:15,142 WARN  [SecurityRealmPortlet] Unable to initialize LoginModule
> java.lang.IllegalArgumentException: Unable to load, instantiate, register driver null: null
>         at org.apache.geronimo.security.realm.providers.SQLLoginModule.initialize(SQLLoginModule.java:145)
>         at org.apache.geronimo.console.util.KernelManagementHelper.testLoginModule(KernelManagementHelper.java:389)
>         at org.apache.geronimo.console.util.PortletManager.testLoginModule(PortletManager.java:154)
>         at org.apache.geronimo.console.securitymanager.realm.SecurityRealmPortlet.actionTestLoginModuleLoad(SecurityRealmPortlet.java:265)
>         at org.apache.geronimo.console.securitymanager.realm.SecurityRealmPortlet.processAction(SecurityRealmPortlet.java:183)
>         at org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:229)
>         at org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:158)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>         at org.apache.pluto.core.PortletServlet.service(PortletServlet.java:153)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
>         at org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:97)
>         at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
>         at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170)
>         at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>         at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
>         at org.apache.geronimo.jetty.JettyWebApplicationHandler.dispatch(JettyWebApplicationHandler.java:58)
>         at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:283)
>         at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:163)
>         at org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120)
>         at org.apache.pluto.invoker.impl.PortletInvokerImpl.action(PortletInvokerImpl.java:68)
>         at org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContainerImpl.java:164)
>         at org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.processPortletAction(PortletContainerWrapperImpl.java:82)
>         at org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:227)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
>         at org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:97)
>         at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
>         at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170)
>         at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>         at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
>         at org.apache.geronimo.jetty.JettyWebApplicationHandler.dispatch(JettyWebApplicationHandler.java:58)
>         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
>         at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
>         at org.mortbay.http.HttpServer.service(HttpServer.java:909)
>         at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
>         at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
>         at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
>         at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
>         at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
>         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
>
>
>
>
>
>
> Here is what I did to create the security realm on a fresh Geronimo 1.1 installation:
>
> 1. Create a new database called testdb, create and fill tables for users and groups
>
> SQL statements:
>
> create table users (
> userid varchar(15) primary key,
> password varchar(15),
> username varchar(20)
> );
>
> create table groups (
> userid varchar(15),
> groupname varchar(20),
> primary key (userid, groupname)
> );
>
> insert into users values ('admin', 'password', 'Administrator');
> insert into groups values ('admin', 'AdminGroup');
>
>
> 2. Create Database pool (Database Pools -> Using the Geronimo database pool wizard)
>
> Step 1
> - Name: testpool
> - Database type: Derby embedded
>
> Step 2:
> - JDBC Driver (pre defined value): org.apache.derby.jdbc.EmbeddedDriver
> - Driver JAR: org.apache.derby/derby/10.1.1.0/jar
> - Database: testdb
>
> Step 3:
> JDBC connect url (pre defined): jdbc:derby:testdb
>
>
> 3. Create Security Realm (Security Realms -> Add new security realm)
>
> Step 1:
> - Name of realm: testrealm
> - Realm type: Database (SQL) Realm
> - User select SQL: select userid, password from users where userid=?
> - Group select: select userid, groupname from groups where userid=?
> - Database pool: testpool
>
>
> And here is where it ends with the error above. Has anybody an idea what's going wrong?
>
> Best regards,
>
> Markus
>
> Stelle Deine Fragen bei Lycos iQ -  http://iq.lycos.de/qa/ask/
>