[ 
https://issues.apache.org/jira/browse/AMBARI-22882?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated AMBARI-22882:
------------------------------------
    Labels: pull-request-available  (was: )

> Long cannot be cast to String error when changing a user's password
> -------------------------------------------------------------------
>
>                 Key: AMBARI-22882
>                 URL: https://issues.apache.org/jira/browse/AMBARI-22882
>             Project: Ambari
>          Issue Type: Bug
>          Components: ambari-server
>    Affects Versions: 2.7.0
>            Reporter: Robert Levas
>            Assignee: Robert Levas
>            Priority: Critical
>              Labels: pull-request-available
>             Fix For: 2.7.0
>
>
> Long cannot be cast to String error when changing a user's password:
> {noformat}
> 30 Jan 2018 18:21:11,308 ERROR [ambari-client-thread-38] 
> AbstractResourceProvider:353 - Caught AmbariException when modifying a 
> resource
> org.apache.ambari.server.AmbariException: java.lang.Long cannot be cast to 
> java.lang.String
> at 
> org.apache.ambari.server.controller.internal.UserResourceProvider.addOrUpdateLocalAuthenticationSource(UserResourceProvider.java:559)
> at 
> org.apache.ambari.server.controller.internal.UserResourceProvider.updateUsers(UserResourceProvider.java:486)
> at 
> org.apache.ambari.server.controller.internal.UserResourceProvider.access$200(UserResourceProvider.java:69)
> at 
> org.apache.ambari.server.controller.internal.UserResourceProvider$3.invoke(UserResourceProvider.java:264)
> at 
> org.apache.ambari.server.controller.internal.UserResourceProvider$3.invoke(UserResourceProvider.java:261)
> at 
> org.apache.ambari.server.controller.internal.AbstractResourceProvider.invokeWithRetry(AbstractResourceProvider.java:465)
> at 
> org.apache.ambari.server.controller.internal.AbstractResourceProvider.modifyResources(AbstractResourceProvider.java:346)
> at 
> org.apache.ambari.server.controller.internal.UserResourceProvider.updateResources(UserResourceProvider.java:261)
> at 
> org.apache.ambari.server.controller.internal.ClusterControllerImpl.updateResources(ClusterControllerImpl.java:317)
> ...
> {noformat}
> *Steps to reproduce*
>  # Create a {{LOCAL}} user account (using either the Ambari UI or REST API)
> {noformat}
> POST /api/v1/users
> {noformat}
> {code:title=Payload}
> { 
>   "Users" : {
>     "user_name" : "myuser",
>     "password" : "hadoop"
>   }
> }
> {code}
>  # Change the user's password (using either the Ambari UI or REST API via the 
> users entry point)
> {noformat}
> PUT /api/v1/users/myuser
> {noformat}
> {code:title=Payload}
> { 
>   "Users" : {
>     "old_password" : "hadoop"
>     "password" : "hadoop1234"
>   }
> }
> {code}
> {code:title=Response}
> {
>   "status" : 500,
>   "message" : "org.apache.ambari.server.controller.spi.SystemException: An 
> internal system exception occurred: java.lang.Long cannot be cast to 
> java.lang.String"
> }
> {code}
> *Cause*
> When building the internal request to set the user's password via the 
> UserAuthenticationSource resource provider, the authentication source key is 
> set as a {{Long}}. The UserAuthenticationSource resource provider expects 
> this value to be a {{String}}.
> *Solution*
> The User resource provider should set the 
> {{AuthenticationSourceInfo/source_id}} as a {{String}} value.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to