Java Restful Web服务登录凭据失败

时间:2014-10-29 05:29:40

标签: java web-services restful-authentication

所以我构建了一个Java Web服务来连接到我正在开发的移动Android应用程序。我是Java&的新手Android,我有点困难。我有我的android将登录详细信息发送到Restful Web Service,但是当它试图验证为用户提供的数据库表中的详细信息时,其余的Web服务失败了。我知道这是检查凭证问题,因为当我注释掉支票凭证声明时,它会让我登录。我无法弄清楚我的代码中的凭证验证声明出错了,有人可以提供帮助,这会很棒。我的Restful服务的Login.class如下。此外,我正在运行tomcat7的所有内容。

private boolean checkCredentials(String uname, String pwd){

        System.out.println("Inside checkCredentials");
        boolean result = false;
        if(Utitlity.isNotNull(uname) && Utitlity.isNotNull(pwd)){
            try {
                result = DBConnection.checkLogin(uname, pwd);
               // System.out.println("Inside checkCredentials try "+result);
            } catch (Exception e) {
                // TODO Auto-generated catch block
              //  System.out.println("Inside checkCredentials catch");
                result = false;
            }
        }else{
            System.out.println("Inside checkCredentials else");
            result = false;
        }

        return result;
    }

1 个答案:

答案 0 :(得分:0)

您的代码存在一些问题。主要的一点是你处理checkLogin()中抛出的任何异常只是一个常规的“没有签出”的情况。

您真的想要默默地忽略任何系统故障,并像处理有效的业务案例一样处理它吗?

我并不是说这在每种情况下都是错误的,而是将其作为明确的设计决策,至少记录一些关于异常的信息,这样你就可以看出出现了问题。

更好的是,将catch-clause限制为您真正期望抛出的Exceptions。 (即便如此,记录关于例外的信息!)

DBConnection.checkLogin()等静态方法的使用表明存在更多设计问题。它可能会起作用,并且在某些情况下很方便,但从长远来看它会咬你。

因此,要找到您当前的问题:在catch子句中打印Exception的堆栈跟踪。同时在调用后记录checkLogin()调用的结果,仍然在try-block中。如果打印了该信息,则不会抛出异常,并且您的问题位于checkLogin()