I have a problem logging into my Java application on JBOSS. I am using a database login module with JBOSS 7.1.1
The test environment was in a MySQL database. Everything worked perfectly and without problems. The application is deployed correctly and I can log in to my application.
Now for the production of DBMS you need to change to Oracle. Also here everything is deployed. I could open the application using my browser. But registration is not possible. Every time I tried to log in, the log says: PB00019: Processing Failed:No matching username found in Principals .
This is my configuration for the login module:
<security-domain name="apdomainhashed" cache-type="default"> <authentication> <login-module code="Database" flag="required"> <module-option name="dsJndiName" value="java:jboss/datasources/MySqlDS"/> <module-option name="principalsQuery" value="SELECT PASSWORD FROM TBLUSERS WHERE USERNAME=?"/> <module-option name="rolesQuery" value="SELECT r.rolename, 'Roles' FROM TBLUSERS u INNER JOIN TBLUSER_GROUPS ug ON u.id = ug.users_id INNER JOIN TBLGROUPS g ON g.id = ug.groups_id INNER JOIN TBLGROUPS_ROLES gr ON gr.groups_id = g.id INNER JOIN TBLROLES r ON r.id = gr.roles_id WHERE u.username=? AND u.active=1"/> <module-option name="hashAlgorithm" value="SHA-512"/> <module-option name="hashEncoding" value="BASE64"/> <module-option name="hashStorePassword" value="false"/> <module-option name="hashUserPassword" value="true"/> <module-option name="passwordIsA1Hash" value="true"/> </login-module> </authentication> </security-domain>
If I send the request manually, I get the correct value:
SELECT PASSWORD FROM TBLUSERS WHERE USERNAME='admin'; PASSWORD
This is a complete trace of a failed login:
07:44:31,291 TRACE [org.jboss.security.authentication.JBossCachedAuthenticationManager] (http--0.0.0.0-8080-6) Begin isValid, principal:admin, cache entry: null 07:44:31,292 TRACE [org.jboss.security.authentication.JBossCachedAuthenticationManager] (http--0.0.0.0-8080-6) defaultLogin, principal=admin 07:44:31,292 TRACE [org.jboss.security.auth.login.XMLLoginConfigImpl] (http--0.0.0.0-8080-6) Begin getAppConfigurationEntry(apdomainhashed), size=4 07:44:31,293 TRACE [org.jboss.security.auth.login.XMLLoginConfigImpl] (http--0.0.0.0-8080-6) End getAppConfigurationEntry(apdomainhashed), authInfo=AppConfigurationEntry[]: [0] LoginModule Class: org.jboss.security.auth.spi.DatabaseServerLoginModule ControlFlag: LoginModuleControlFlag: required Options: name=hashUserPassword, value=true name=hashAlgorithm, value=SHA-512 name=principalsQuery, value=SELECT PASSWORD FROM TBLUSERS WHERE USERNAME=? name=passwordIsA1Hash, value=true name=hashEncoding, value=BASE64 name=dsJndiName, value=java:jboss/datasources/MySqlDS name=hashStorePassword, value=false name=rolesQuery, value=SELECT r.rolename, 'Roles' FROM TBLUSERS u INNER JOIN TBLUSER_GROUPS ug ON u.id = ug.users_id INNER JOIN TBLGROUPS g ON g.id = ug.groups_id INNER JOIN TBLGROUPS_ROLES gr ON gr.groups_id = g.id INNER JOIN TBLROLES r ON r.id = gr.roles_id WHERE u.username=? AND u.active=1 07:44:31,296 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) initialize 07:44:31,297 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) Security domain: apdomainhashed 07:44:31,297 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) Password hashing activated: algorithm = SHA-512, encoding = BASE64, charset = {default}, callback = null, storeCallback = null 07:44:31,298 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) DatabaseServerLoginModule, dsJndiName=java:jboss/datasources/MySqlDS 07:44:31,299 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) principalsQuery=SELECT PASSWORD FROM TBLUSERS WHERE USERNAME=? 07:44:31,299 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) rolesQuery=SELECT r.rolename, 'Roles' FROM TBLUSERS u INNER JOIN TBLUSER_GROUPS ug ON u.id = ug.users_id INNER JOIN TBLGROUPS g ON g.id = ug.groups_id INNER JOIN TBLGROUPS_ROLES gr ON gr.groups_id = g.id INNER JOIN TBLROLES r ON r.id = gr.roles_id WHERE u.username=? AND u.active=1 07:44:31,301 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) suspendResume=true 07:44:31,302 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) login 07:44:31,303 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) suspendAnyTransaction 07:44:31,304 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) Excuting query: SELECT PASSWORD FROM TBLUSERS WHERE USERNAME=?, with username: admin 07:44:31,305 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) Query returned no matches from db 07:44:31,306 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) resumeAnyTransaction 07:44:31,306 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] (http--0.0.0.0-8080-6) abort 07:44:31,307 ERROR [org.jboss.security.authentication.JBossCachedAuthenticationManager] (http--0.0.0.0-8080-6) Login failure: javax.security.auth.login.FailedLoginException: PB00019: Processing Failed:No matching username found in Principals
In MySQL, the column data type was VARCHAR. With the oracle he is now VARCHAR2.
Does anyone know why I could not login with oracle as a data source?