Hi all,
Got an issue on a brand new installation of PWM (it's also my first installation of PWM, so I could have a config or 6 wrong). I am getting this error when doing a password change, the user account is a standard MS AD account with the password configured to change immediately.
I've setup a post-password change action of GET a URL from a server (simple PHP script that acts as an API and executes thing, its not the best but it needs to last 6 months before this old system is killed). Its sole purpose is to allow the new password on the new AD domain to be "sync'd" to the old AD domain.
Notes
- PWM runs on a dedicated VM with Ubuntu 20.04 LTS 64bit
- Connected to a MS AD domain (2016 functionality)
- The web service is a custom PHP script
- Using Apache with a CA for HTTPS. Certificate is imported on the configuration screen
- The PHP script doesnt have any authentication
- Was using 3 parameters, username, password, and secret key
- The secret key was URL encoded and put statically in the request
- The request is done as a GET request with the information in the URL itself.
Below is the output from the logs.
2022-08-12T01:39:07Z, ERROR, http.PwmResponse, {YVIs4,MyTest} 5015 ERROR_INTERNAL (unexpected error during action handler for 'password.pwm.http.servlet.changepw.PrivateChangePasswordServlet:change', error: Illegal character in path at index 55:
https://serverdc02.company.com/password/user/MyTest/]umpyBean76) [192.168.2.24]
2022-08-12T01:39:07Z, FATAL, servlet.AbstractPwmServlet, {YVIs4,MyTest} unexpected error: 5015 ERROR_INTERNAL (unexpected error during action handler for 'password.pwm.http.servlet.changepw.PrivateChangePasswordServlet:change', error: Illegal character in path at index 55:
https://serverdc02.company.com/password/user/MyTest/]umpyBean76) [192.168.2.24]
2022-08-12T01:39:07Z, ERROR, servlet.AbstractPwmServlet, {YVIs4,MyTest} unexpected error during action handler for 'password.pwm.http.servlet.changepw.PrivateChangePasswordServlet:change', error: Illegal character in path at index 55:
https://serverdc02.company.com/password/user/MyTest/*hidden* [192.168.2.24] (stacktrace follows)
java.lang.Throwable: Illegal character in path at index 55:
https://serverdc02.company.com/password/user/MyTest/]umpyBean76 at java.base/java.net.URI.create(URI.java:883)
at password.pwm.svc.httpclient.PwmHttpClientRequest.isHttps(PwmHttpClientRequest.java:69)
at password.pwm.svc.httpclient.ApachePwmHttpClient.makeRequestImpl(ApachePwmHttpClient.java:363)
at password.pwm.svc.httpclient.ApachePwmHttpClient.makeRequest(ApachePwmHttpClient.java:345)
at password.pwm.util.operations.ActionExecutor.executeWebserviceAction(ActionExecutor.java:226)
at password.pwm.util.operations.ActionExecutor.executeAction(ActionExecutor.java:92)
at password.pwm.util.operations.ActionExecutor.executeActions(ActionExecutor.java:73)
at password.pwm.util.password.PasswordUtility.setActorPassword(PasswordUtility.java:367)
at password.pwm.http.servlet.changepw.ChangePasswordServletUtil.executeChangePassword(ChangePasswordServletUtil.java:220)
at password.pwm.http.servlet.changepw.ChangePasswordServlet.processChangeAction(ChangePasswordServlet.java:223)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at password.pwm.http.servlet.ControlledPwmServlet.dispatchMethod(ControlledPwmServlet.java:122)
at password.pwm.http.servlet.ControlledPwmServlet.processAction(ControlledPwmServlet.java:163)
at password.pwm.http.servlet.AbstractPwmServlet.handleRequest(AbstractPwmServlet.java:125)
at password.pwm.http.servlet.AbstractPwmServlet.doPost(AbstractPwmServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at password.pwm.http.filter.AbstractPwmFilter$PwmFilterChain.doFilter(AbstractPwmFilter.java:153)
at password.pwm.http.filter.AuthenticationFilter.processAuthenticatedSession(AuthenticationFilter.java:211)
at password.pwm.http.filter.AuthenticationFilter.processFilter(AuthenticationFilter.java:108)
at password.pwm.http.filter.AbstractPwmFilter.doFilter(AbstractPwmFilter.java:97)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at password.pwm.http.filter.AbstractPwmFilter$PwmFilterChain.doFilter(AbstractPwmFilter.java:153)
at password.pwm.http.filter.SessionFilter.processFilter(SessionFilter.java:111)
at password.pwm.http.filter.AbstractPwmFilter.doFilter(AbstractPwmFilter.java:97)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at password.pwm.http.filter.AbstractPwmFilter$PwmFilterChain.doFilter(AbstractPwmFilter.java:153)
at password.pwm.http.filter.ApplicationModeFilter.processFilter(ApplicationModeFilter.java:82)
at password.pwm.http.filter.AbstractPwmFilter.doFilter(AbstractPwmFilter.java:97)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at password.pwm.http.filter.AbstractPwmFilter$PwmFilterChain.doFilter(AbstractPwmFilter.java:153)
at password.pwm.http.filter.ObsoleteUrlFilter.processFilter(ObsoleteUrlFilter.java:65)
at password.pwm.http.filter.AbstractPwmFilter.doFilter(AbstractPwmFilter.java:97)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at password.pwm.http.filter.RequestInitializationFilter.initializeServletRequest(RequestInitializationFilter.java:245)
at password.pwm.http.filter.RequestInitializationFilter.doFilter(RequestInitializationFilter.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.github.ziplet.filter.compression.CompressingFilter.doFilter(CompressingFilter.java:263)
at password.pwm.http.filter.GZIPFilter.doFilter(GZIPFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at password.pwm.http.filter.CookieManagementFilter.doFilter(CookieManagementFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.Throwable: Illegal character in path
at java.base/java.net.URI$Parser.fail(URI.java:2913)
at java.base/java.net.URI$Parser.checkChars(URI.java:3084)
at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3166)
at java.base/java.net.URI$Parser.parse(URI.java:3114)
at java.base/java.net.URI.<init>(URI.java:600)
at java.base/java.net.URI.create(URI.java:881)
... 73 more
2022-08-12T01:39:07Z, INFO , password.PasswordUtility, {YVIs4,MyTest} password for user 'CN=Test user,OU=Staff,OU=Users,OU=COMPANY,DC=corp,DC=COMPANY,DC=com (default)' has been changed by CN=Service Account for PWM,OU=Users - Service Accounts,OU=COMPANY,DC=corp,DC=COMPANY,DC=com (21ms) [192.168.2.24]
2022-08-12T01:39:02Z, INFO , event.AuditService, {YVIs4} audit event: {"perpetratorID":"MyTest","perpetratorDN":"CN=Test user,OU=Staff,OU=Users,OU=COMPANY,DC=corp,DC=COMPANY,DC=com","perpetratorLdapProfile":"default","sourceAddress":"192.168.2.24","sourceHost":"192.168.2.24","type":"USER","eventCode":"AUTHENTICATE","guid":"0de6e159-28af-446a-8834-68476712b195","timestamp":"2022-08-12T01:39:02Z","message":"type=AUTH_BIND_INHIBIT, source=LOGIN_FORM","narrative":"MyTest (CN=Test user,OU=Staff,OU=Users,OU=COMPANY,DC=corp,DC=COMPANY,DC=com) has authenticated","xdasTaxonomy":"XDAS_AE_AUTHENTICATE_ACCOUNT","xdasOutcome":"XDAS_OUT_SUCCESS"} [192.168.2.24]