grealish / pwm

Automatically exported from code.google.com/p/pwm
0 stars 0 forks source link

Read only LDAP attribute on Update Profile leads to PWM 5015 error #372

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Read only LDAP attribute on Update Profile leads to PWM 5015 error

What steps will reproduce the problem?
1. In the Configuration Manager go to Configuration editor -> Modules -> Update 
Profile
2. Enable the module with the following form values:
    - one LDAP attributes with required=yes, confirm=no, read-only=no (TestAuxmail3)
    - one LDAP attribute with required=no, confirm=no, read-only=no (TestAuxsmsNumber)
    - one LDAP attribute with required=no, confirm=no, read-only=yes (TestAuxmail)
3. Save the configuration
4. Add the appropriate ACL's in the LDAP directory
5. In the end user webfrontend login and go the the Update Profile module
6. Don't change any data and press the update button

What is the expected output? What do you see instead?
I would expect that PWM would give a success, because the LDAP attributes that 
have read-only=no are not changed. Instead I get an error: "PWM 5015 Unexpected 
error. If this error occurs repeatedly please contact your helpdesk."

relevant part of catalina.out:

2013-04-24 20:36:20, TRACE, pwm.SessionFilter, {n,testuser} POST request for: 
/pwm-LATEST/private/UpdateProfile  [123.456.789.123]
  TestAuxsmsNumber='+31612345678'
  pwmFormID='UpAAQJVHCoWQS4fsgUu8qW1Hc1xTCm6Y13e3d377b09ne9xto'
  processAction='updateProfile'
  TestAuxmail3='test@gmail.com'
2013-04-24 20:36:20, WARN , servlet.TopServlet, {n,testuser} unexpected pwm 
error during page generation: null [123.456.789.123]
java.lang.UnsupportedOperationException
        at java.util.Collections$UnmodifiableCollection$1.remove(Collections.java:1016)
        at password.pwm.servlet.UpdateProfileServlet.readFormParametersFromRequest(UpdateProfileServlet.java:260)
        at password.pwm.servlet.UpdateProfileServlet.handleUpdateRequest(UpdateProfileServlet.java:305)
        at password.pwm.servlet.UpdateProfileServlet.processRequest(UpdateProfileServlet.java:97)
        at password.pwm.servlet.TopServlet.handleRequest(TopServlet.java:83)
        at password.pwm.servlet.TopServlet.doPost(TopServlet.java:145)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at password.pwm.AuthenticationFilter.processAuthenticatedSession(AuthenticationFilter.java:132)
        at password.pwm.AuthenticationFilter.doFilter(AuthenticationFilter.java:80)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at password.pwm.SessionFilter.processFilter(SessionFilter.java:233)
        at password.pwm.SessionFilter.doFilter(SessionFilter.java:81)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at password.pwm.GZIPFilter.doFilter(GZIPFilter.java:45)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at password.pwm.ApplicationModeFilter.doFilter(ApplicationModeFilter.java:63)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:736)
2013-04-24 20:36:20, TRACE, util.MacroMachine, replaced Macro @User:ID@ with 
value: testuser

What version of PWM are you using?
Daily build (pwmVersion="1.7.0" pwmBuild="1216" pwmBuildType="RC1" 
createTime="2013-04-04 06:24:31 +0000")

What ldap directory and version are you using?
eDirectory for Linux x86_64 v8.8 SP7 ON SLES11 SP1

Original issue reported on code.google.com by sebastia...@gmail.com on 24 Apr 2013 at 6:48

GoogleCodeExporter commented 9 years ago
Fixed in revision 548.

Original comment by jrivard on 25 Apr 2013 at 8:03

GoogleCodeExporter commented 9 years ago
Retested this in today build, seems to work OK now. Thanks for fixing :)

Original comment by sebastia...@gmail.com on 26 Apr 2013 at 6:07