0

Yubikey で認証できる RESTful Web サービスを Java で作成しようとしています。REST について学習しようとして完了した既存のチュートリアルを変更しています。

javax.ws.rs.core.Response 関数内から検証関数を呼び出そうとしていますが、インポートされた yubikey jar からのパッケージでエラーが発生し続けます。

これらの jar をビルド パス -> ライブラリ -> 外部 Jar の追加からインポートしました

フォームを RESTful URL に投稿すると、次のようなエラーが発生します。

java.lang.NoClassDefFoundError: com/yubico/client/v2/exceptions/YubicoValidationException

package de.vogella.jersey.todo.resources;


import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;

import com.yubico.client.v2.exceptions.YubicoValidationException;
import com.yubico.client.v2.exceptions.YubicoValidationFailure;
import de.vogella.jersey.todo.resources.Validate;

@Path("/test")
public class Test {

@POST
public Response testCred(@FormParam("username") String username,
          @FormParam("password") String password,
          @FormParam("otp") String otp) throws YubicoValidationException, YubicoValidationFailure {
    int client_id = 11095; 
    boolean status;
    status = Validate.validate(otp, client_id);

    return Response.status(200)
        .entity("validation status: : " + status + ", for client " + otp)
        .build();

    }

}

検証クラスは次のとおりです。

package de.vogella.jersey.todo.resources;

import com.yubico.client.v2.YubicoClient;
import com.yubico.client.v2.YubicoResponse;
import com.yubico.client.v2.YubicoResponseStatus;
import com.yubico.client.v2.exceptions.YubicoValidationException;
import com.yubico.client.v2.exceptions.YubicoValidationFailure;


public class Validate {

 public static boolean validate(String otp, int client_id) throws YubicoValidationException, YubicoValidationFailure {
        YubicoClient client = YubicoClient.getClient(client_id);
        YubicoResponse response = client.verify(otp);
        if(response != null && response.getStatus() == YubicoResponseStatus.OK) {
          return true;
        }
        return false;
     }

}
4

0 に答える 0