[
https://issues.apache.org/jira/browse/AMBARI-22882?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robert Levas updated AMBARI-22882:
----------------------------------
Description:
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.
was:
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 UserAuthenticationSource resource provider should accept the
{{AuthenticationSourceInfo/source_id}} as either a {{Numeric}} or a {{String}}
value that ultimately translates to a {{Long}}.
> 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
> 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)