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?
