使用Java SimpleFramework验证服务器上的客户端凭据

时间:2015-03-25 15:56:20

标签: java https simple-framework

我正在使用Java SimpleFramework开发支持SSL / TLS的服务器。我想知道如何在服务器上验证客户端身份验证。

在服务器端,我正在扩展org.simpleframework.http.core.ContainerServer并覆盖process()方法,如下所示:

@Override
public void process(Socket socket) throws IOException {
    // Ensures client authentication is required
    socket.getEngine().setNeedClientAuth(true);

    super.process(socket);
}

这是为了确保客户端进行身份验证。 请注意,如果我移除了对setNeedClientAuth()的通话,我的程序就能完美运行。

在客户端,使用以下代码:

HttpClient client = new HttpClient();

Credentials defaultcreds = new UsernamePasswordCredentials("username", "password");
client.getState().setCredentials(AuthScope.ANY, defaultcreds);

GetMethod get = new GetMethod("https://url.to.server");
get.setDoAuthentication(true);

client.executeMethod(get);

启用身份验证要求时,我收到以下异常:

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

我猜这与传递的凭证永远不会被验证的事实有关。

总结一下我的问题,我该如何继续验证服务器上的客户端?

0 个答案:

没有答案
相关问题