Hi,

I have set up shiro programatically using the following code:

SQLiteConfig config = new SQLiteConfig();
config.enforceForeignKeys( true );
HashedCredentialsMatcher cm = new HashedCredentialsMatcher( "SHA-256" );
cm.setHashIterations( 500000 );
JdbcRealm realm = new JdbcRealm();
org.sqlite.SQLiteDataSource ds = new org.sqlite.SQLiteDataSource( config );
ds.setUrl( "jdbc:sqlite:light.db" );
realm.setDataSource( ds );
realm.setCredentialsMatcher( cm );
realm.setSaltStyle( SaltStyle.COLUMN );
SecurityManager ss = new DefaultSecurityManager( realm );
SecurityUtils.setSecurityManager( ss );

However, when I try to authenticate a user, I can't log in. This worked
find before when I used shiro.ini with no encryption on the passwords. The
following debug information is printed out:

18:18:28.835 [SSHThread] DEBUG org.apache.shiro.realm.AuthenticatingRealm -
Looked up AuthenticationInfo [robert] from doGetAuthenticationInfo
18:18:28.836 [SSHThread] DEBUG org.apache.shiro.realm.AuthenticatingRealm -
AuthenticationInfo caching is disabled for info [robert]. Submitted token:
[org.apache.shiro.authc.UsernamePasswordToken - robert, rememberMe=false].
18:18:29.275 [SSHThread] DEBUG
org.apache.shiro.authc.credential.SimpleCredentialsMatcher - Performing
credentials equality check for tokenCredentials of type
[org.apache.shiro.crypto.hash.SimpleHash and accountCredentials of type
[org.apache.shiro.crypto.hash.SimpleHash]
18:18:29.276 [SSHThread] DEBUG
org.apache.shiro.authc.credential.SimpleCredentialsMatcher - Both
credentials arguments can be easily converted to byte arrays. Performing
array equals comparison
18:18:29.277 [SSHThread] ERROR com.synexxus.gateway.connectors.SSHConnector
- org.apache.shiro.authc.IncorrectCredentialsException: Submitted
credentials for token [org.apache.shiro.authc.UsernamePasswordToken -
robert, rememberMe=false] did not match the expected credentials.

Since I setup the realm for the SecurityManager to be a JdbcRealm, I would
expect that the log lines that come from
org.apache.shiro.realm.AuthenticatingRealm would in fact come from
org.apache.shiro.realm.jdbc.JdbcRealm. Why isn't this the case?

Reply via email to