简体   繁体   中英

How to find roles of a user in cloudboost

I am trying to get all the roles assigned to user when user logs in, using the code below.

public class roles extends AsyncTask <String,Void,Void>{

       @Override
       protected Void doInBackground(String... params) {

           final CloudUser user = new CloudUser();
           final CloudRole role = new CloudRole("MCA");

           user.setUserName(params[0]);
           user.setPassword(params[1]);


               try {
                   user.logIn(new CloudUserCallback() {
                       @Override
                       public void done(CloudUser cloudUser, CloudException e) throws CloudException {
                           if (cloudUser != null) {
                               System.out.println("login Successful");
                               System.out.println(cloudUser.getUserName());
                               cloudUser.isInRole(role);
                           }
                           if (e != null) {
                               System.out.println("In logn exception");
                               e.printStackTrace();
                           }


                       }
                   });
               } catch (CloudException e) {
                   e.printStackTrace();
               }


               return null;
       }
    }

I am getting the following error:

FATAL EXCEPTION: AsyncTask #1 Process: com.rakesh_kr.image, PID: 31256 java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:300) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818) Caused by: java.lang.ClassCastException: io.cloudboost.json.JSONArray cannot be cast to java.util.ArrayList at io.cloudboost.CloudUser.isInRole(CloudUser.java:335) at com.rakesh_kr.image.MainActivity$roles$1.done(MainActivity.java:174) at io.cloudboost.CloudUser.logIn(CloudUser.java:219) at com.rakesh_kr.image.MainActivity$r oles.doInBackground(MainActivity.java:168) at com.rakesh_kr.image.MainActivity$roles.doInBackground(MainActivity.java:155) at android.os.AsyncTask$2.call(AsyncTask.java:288) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818)

这是在v1.0.7之前的CloudBoost JavaSDK版本中出现的一个错误,已修复,请从github克隆最新的源代码或获取最新的jar(1.0.7) ,该文件应该在几小时内在maven上提供现在。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM