views:

32

answers:

1

Hello folks,

I configured Shiro as follows:

        [main]



        [users]

        ...

        [roles]

        ...

        [urls]

        /welcome.xhtml = anon
        /overview.xhtml = authc

As you can imagine 'welcome.xhtml' contains my login-form. If I am not logged into the application and I try to access overview.xhtml I am thrown to 'login.jsp' that is not existend in my application!

Further, If I add following:

authc.loginUrl = /welcome.xhtml

to the main part of shiro config i get this error by starting tomcat:

ERROR: Exception starting filter SecurityFilter
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/PropertyUtils
    at org.apache.shiro.config.ReflectionBuilder.isTypedProperty(ReflectionBuilder.java:241)
    at org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:349)
    at org.apache.shiro.config.ReflectionBuilder.applySingleProperty(ReflectionBuilder.java:200)
    at org.apache.shiro.config.ReflectionBuilder.applyProperty(ReflectionBuilder.java:161)
    at org.apache.shiro.config.ReflectionBuilder.buildObjects(ReflectionBuilder.java:121)
    at org.apache.shiro.config.IniSecurityManagerFactory.buildInstances(IniSecurityManagerFactory.java:171)
    at org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:120)
    at org.apache.shiro.config.IniSecurityManagerFactory.createSecurityManager(IniSecurityManagerFactory.java:98)
    at org.apache.shiro.config.IniSecurityManagerFactory.createInstance(IniSecurityManagerFactory.java:84)
    at org.apache.shiro.config.IniSecurityManagerFactory.createInstance(IniSecurityManagerFactory.java:42)
    at org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:124)
    at org.apache.shiro.util.AbstractFactory.getInstance(AbstractFactory.java:48)
    at org.apache.shiro.web.servlet.IniShiroFilter.applySecurityManager(IniShiroFilter.java:353)
    at org.apache.shiro.web.servlet.IniShiroFilter.configure(IniShiroFilter.java:321)
    at org.apache.shiro.web.servlet.IniShiroFilter.init(IniShiroFilter.java:292)
    at org.apache.shiro.web.servlet.AbstractShiroFilter.onFilterConfigSet(AbstractShiroFilter.java:83)
    at org.apache.shiro.web.servlet.AbstractFilter.init(AbstractFilter.java:94)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
    at org.apache.catalina.core.StandardService.start(StandardService.java:519)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
    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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.beanutils.PropertyUtils
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
    ... 35 more

Ehere is my mistake? cheers...


MAVEN POM PART:

    <dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-core</artifactId>
        <version>1.0.0-incubating</version>
    </dependency>
    <dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-web</artifactId>
        <version>1.0.0-incubating</version>
    </dependency>
    <dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-aspectj</artifactId>
        <version>1.0.0-incubating</version>
    </dependency>
+2  A: 

If you use Shiro's .ini configuration, it uses Apache Commons Beanutils 1.7 (or later). That jar must be in your application's classpath at runtime.

If you're using Maven 2, the dependency will be automatically included (unless someone has explicitly excluded it from your POM). If you're not using Maven 2, you can download it from here:

http://repo2.maven.org/maven2/commons-beanutils/commons-beanutils/1.7.0/

Les Hazlewood
I am using maven2.. see my update above
Sven