4 Replies Latest reply: May 14, 2013 7:20 PM by kmaeer RSS

    Change User Password Using OIM 11g API

    905538
      Hi All ,

      I have written java code to change the user password using oim 11g api.
      i am using below method of AuthenticatedSelfService Interface.

      void changePassword(char[] oldPwd,
      char[] newPwd,
      char[] confirmPwd)
      throws ValidationFailedException,
      ChangePasswordException


      for some users it is able to change the password and for some throughing ValidationFailedException while validating the old password even i am giving right password because i am logined successfully with user id and old password.

      any help would be appreciated!!!!


      thanks
        • 1. Re: Change User Password Using OIM 11g API
          991448
          May be the new password is not confirmimg to the password rules of OIM.. what is the exact error message which you see in exception.printstacktrace()
          • 2. Re: Change User Password Using OIM 11g API
            905538
            [APP: oim#11.1.1.3.0] Validation failed for change password.[[
            oracle.iam.platform.kernel.ValidationFailedException: The password change operation failed while validating old password.
            at oracle.iam.selfservice.self.selfmgmt.impl.handlers.changepwd.ChangePasswordValidationHandler.validate(ChangePasswordValidationHandler.java:182)
            at oracle.iam.selfservice.self.selfmgmt.impl.handlers.changepwd.ChangePasswordValidationHandler.validate(ChangePasswordValidationHandler.java:112)
            at oracle.iam.platform.kernel.impl.OrchProcessData.validate(OrchProcessData.java:217)
            at oracle.iam.platform.kernel.impl.OrchProcessData.runValidationEvents(OrchProcessData.java:180)
            at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.validate(OrchestrationEngineImpl.java:644)
            at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.process(OrchestrationEngineImpl.java:497)
            at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.orchestrate(OrchestrationEngineImpl.java:444)
            at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.orchestrate(OrchestrationEngineImpl.java:378)
            at oracle.iam.selfservice.self.selfmgmt.impl.AuthenticatedSelfServiceImpl.changePassword(AuthenticatedSelfServiceImpl.java:298)
            at oracle.iam.selfservice.self.selfmgmt.api.AuthenticatedSelfServiceEJB.changePasswordx(Unknown Source)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
            at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
            at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
            at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
            at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
            at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
            • 3. Re: Change User Password Using OIM 11g API
              Mr.Rius
              Please check password policy on design console,

              maybe password you enter may clash with existing policy

              -Mr.Rius-
              • 4. Re: Change User Password Using OIM 11g API
                kmaeer
                Are you using LDAP Sync?

                We were getting this error because something in OIM had corrupted the USR_LDAP_DN fields for some users in the USR table. The affected users had the DN for completely different users which is obviously less than ideal. The password validator tries to connect to the LDAP (OID) using the DN and supplied old password, but it fails because the DN belongs to somebody else who probably has a different password.