javagroovyjmeterpassword-encryption

JSR223 Pre Password Encryption database connection errors


I'm getting this error whenever I try to run my jmeter script. The website is generating a dynamic encryption code when user is trying to login into the application. It is sent to server along with password and username for authentication. How can I fix this issue?

28.02.2024 09:33:26,234 DEBUG [org.apache.coyote.http11] ) JBWEB003028: Start processing with input [txtUserid=PERFUNIADM05&a2=**********&a3=823EUB0OC87JP85DQNFDEE7RJOO0DAQQ&txtpasswd=I+am+an+idiot.&cmbOrgCodes=001&submit=Sign+in&txtResFrac=1920]

28.02.2024 09:33:26,234 INFO [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/collections]] ) I am in Timer Filter 28.02.2024 09:33:26,234 DEBUG [org.apache.struts.util.RequestUtils] Get module name for path /loginAction.do 28.02.2024 09:33:26,234 DEBUG [org.apache.struts.util.RequestUtils] Module name found: default 28.02.2024 09:33:26,234 DEBUG [org.apache.struts.action.RequestProcessor] Processing a 'POST' for path '/loginAction' 28.02.2024 09:33:26,234 DEBUG [org.apache.struts.util.RequestUtils] Get module name for path /loginAction.do 28.02.2024 09:33:26,234 DEBUG [org.apache.struts.util.RequestUtils] Module name found: default 28.02.2024 09:33:26,234 DEBUG [org.apache.struts.action.RequestProcessor] Processing a 'POST' for path '/loginAction' 28.02.2024 09:33:26,234 DEBUG [org.apache.commons.beanutils.ConvertUtils] Convert string '**********' to class 'java.lang.String' 28.02.2024 09:33:26,234 DEBUG [org.apache.commons.beanutils.ConvertUtils] Convert string '823EUB0OC87JP85DQNFDEE7RJOO0DAQQ' to class 'java.lang.String' 28.02.2024 09:33:26,234 DEBUG [org.apache.commons.beanutils.ConvertUtils] Convert string 'I am an idiot.' to class 'java.lang.String' 28.02.2024 09:33:26,234 DEBUG [org.apache.commons.beanutils.ConvertUtils] Convert string 'PERFUNIADM05' to class 'java.lang.String' 28.02.2024 09:33:26,234 DEBUG [org.apache.commons.beanutils.ConvertUtils] Convert string '001' to class 'java.lang.String' 28.02.2024 09:33:26,234 DEBUG [org.apache.commons.beanutils.ConvertUtils] Convert string '1920' to class 'java.lang.String' 28.02.2024 09:33:26,266 INFO [stdout] **** LSObject.getObject() - p_strJNDIName :java:/jdbc/xxxxxxxx 28.02.2024 09:33:26,271 ERROR [stderr] xxxxx.common.Exceptions.LSException 28.02.2024 09:33:26,271 ERROR [stderr] at xxxxx.common.Exceptions.LSExceptionFactory.(LSExceptionFactory.java:26) 28.02.2024 09:33:26,271 ERROR [stderr] at xxxxx.common.Utilities.DataBaseConnection.openConnection(DataBaseConnection.java:53) 28.02.2024 09:33:26,271 ERROR [stderr] at xxxxx.common.Utilities.DataBaseConnection.getConnection(DataBaseConnection.java:29) 28.02.2024 09:33:26,271 ERROR [stderr] at xxxxx.common.ejb.common.SessionBean.getConnection(SessionBean.java:83) 28.02.2024 09:33:26,271 ERROR [stderr] at xxxxx.common.ejb.security.LoginEJB.multipleOrg(Unknown Source) 28.02.2024 09:33:26,271 ERROR [stderr] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 28.02.2024 09:33:26,271 ERROR [stderr] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 28.02.2024 09:33:26,271 ERROR [stderr] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 28.02.2024 09:33:26,271 ERROR [stderr] at java.lang.reflect.Method.invoke(Method.java:498)


Solution

  • 09:33:26,271 ERROR [stderr] at xxxxx.common.Utilities.DataBaseConnection.openConnection(DataBaseConnection.java:53)

    There is nothing you can "fix" on JMeter side, from the log file it looks like that your application server cannot connect to the database. If it's under your control - check your JDBC URL

    In case your question is about "generating a dynamic encryption code" - you can replicate your website's password hashing logic somewhere in JSR223 PreProcessor using Groovy language

    Reference materials: