You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Aaron Mulder <am...@alumni.princeton.edu> on 2006/04/08 00:50:09 UTC

Error deploying in 1.1 (with parent/dependency with no version)

I get this when using the console to deploy a security realm including
a parent with no version specified:

...
Caused by: org.apache.geronimo.kernel.config.InvalidConfigException:
java.lang.ClassCastException
        at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadDepthFirst(SimpleConfigurationManager.java:251)
        at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConfiguration(SimpleConfigurationManager.java:133)
        at org.apache.geronimo.deployment.DeploymentContext.createTempConfiguration(DeploymentContext.java:162)
        ... 24 more
Caused by: java.lang.ClassCastException
        at org.apache.geronimo.kernel.repository.DefaultArtifactResolver.resolveVersion(DefaultArtifactResolver.java:107)
        at org.apache.geronimo.kernel.repository.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:80)
        at org.apache.geronimo.kernel.repository.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:64)
        at org.apache.geronimo.kernel.config.SimpleConfigurationManager.resolveParentIds(SimpleConfigurationManager.java:275)
        at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadDepthFirst(SimpleConfigurationManager.java:231)
        ... 26 more


The plan is:


<configuration xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
    <environment>
        <configId>
            <groupId>console</groupId>
            <artifactId>realm-SQL</artifactId>
            <version>1.0</version>
            <type>car</type>
        </configId>
        <dependencies>
            <dependency>
                <groupId>geronimo</groupId>
                <artifactId>j2ee-security</artifactId>
                <type>car</type>
            </dependency>
            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derbyclient</artifactId>
                <version>10.1.1.0</version>
                <type>jar</type>
            </dependency>
        </dependencies>
    </environment>
    <gbean name="SQL"
class="org.apache.geronimo.security.realm.GenericSecurityRealm">
        <attribute name="realmName">SQL</attribute>
        <reference name="ServerInfo">
            <name>ServerInfo</name>
        </reference>
        <reference name="LoginService">
            <name>JaasLoginService</name>
        </reference>
        <xml-reference name="LoginModuleConfiguration">
            <log:login-config
xmlns:log="http://geronimo.apache.org/xml/ns/loginconfig-1.1">
                <log:login-module control-flag="REQUIRED"
server-side="true" wrap-principals="false">
                    <log:login-domain-name>SQL</log:login-domain-name>
                   
<log:login-module-class>org.apache.geronimo.security.realm.providers.SQLLoginModule</log:login-module-class>
                    <log:option name="userSelect">SELECT username,
password FROM users WHERE username=?</log:option>
                    <log:option
name="jdbcDriver">org.apache.derby.jdbc.EmbeddedDriver</log:option>
                    <log:option name="groupSelect">SELECT username,
group_name FROM user_groups WHERE username=?</log:option>
                    <log:option name="jdbcURL">jdbc:derby:security</log:option>
                </log:login-module>
            </log:login-config>
        </xml-reference>
    </gbean>
</configuration>


If you want to make this work use the DB Manager portlet to create a
database called "security" and then to run this SQL in that database:


create table users(username varchar(20), password varchar(20));
create table user_groups (username varchar(20), group_name varchar(20));
insert into users values ('ammulder','dev');
insert into user_groups values ('ammulder','Testers');
insert into user_groups values ('ammulder','Developers');


Thanks,
    Aaron