Hello,
The PropertiesRealm is really old and hasn't been maintained in a while.
I highly recommend using the IniRealm instead, which allows you to do
everything that the Properties realm allowed, but is even easier to
read and/or organize since you break up the user and role definitions
into their own ini sections. For example:
[users]
root=root,administrator
jerry=jerry,manager,teller
jack=jack,contractor
Much nicer than having to prefix each line with 'user.' or 'role.' IMO.
And in Spring XML:
<bean id="iniRealm" class="org.apache.shiro.realm.text.IniRealm">
<property name="resourcePath" value="classpath:shiro.ini"/>
</bean>
HTH,
--
Les Hazlewood
Founder, Katasoft, Inc.
Application Security Products & Professional Apache Shiro Support and Training:
http://www.katasoft.com
On Sat, Dec 25, 2010 at 12:26 PM, acec acec <[email protected]> wrote:
> Hi, all
> I try to use PropertiesRealm, but I always got "invalid username or password"
> error.
>
> The following is my shiro-users.properties and applicationContext-shiro.xml
>
> ===============shiro-users.properties============
> user.root=root,administrator
> user.jerry=jerry,manager,teller
> user.jack=jack,contractor
>
> ====================applicationContext-shiro.xml===============
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:p="http://www.springframework.org/schema/p"
> xmlns:util="http://www.springframework.org/schema/util"
>
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
> http://www.springframework.org/schema/util
> http://www.springframework.org/schema/util/spring-util-3.0.xsd">
>
> <bean id="lifecycleBeanPostProcessor"
> class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>
>
> <bean id="shiroFilter"
> class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"
> p:securityManager-ref="securityManager"
> p:loginUrl="/login.html">
> <property name="filters">
> <util:map>
> <entry key="authc">
> <bean
> class="org.apache.shiro.web.filter.authc.PassThruAuthenticationFilter"/>
> </entry>
> </util:map>
> </property>
> <property name="filterChainDefinitions">
> <value>
> /admin/** = authc, roles[admin]
> /teller/** = authc, roles[teller]
> /** = authc
> </value>
> </property>
> </bean>
>
> <bean id="securityManager"
> class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"
> p:realm-ref="propertiesRealm"/>
>
> <bean id="propertiesRealm"
> class="org.apache.shiro.realm.text.PropertiesRealm"/>
>
> </beans>