summaryrefslogblamecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/serversession/ServerAuthenticator.java
blob: b16766a6ebb4653048112d8d110d00b3ed33e7ea (plain) (tree)







































                                                                                                     
package org.openslx.imagemaster.serversession;

import java.util.HashMap;

import org.apache.thrift.TException;
import org.openslx.imagemaster.thrift.iface.AuthenticationException;
import org.openslx.imagemaster.util.RandomString;

public class ServerAuthenticator {
	private static HashMap<String, String> authenticatingServers = new HashMap<String, String>();
	/**
	 * Start the server authentification.
	 * @param organization the organization of the server
	 * @return encrypted random string
	 */
	public static String startServerAuthentication(String organization) {
		/*
		 * TODO:
		 * Create random string, send it to server.
		 * Remember organization for later authentification.
		 */
		String secret = RandomString.generate(100, false);
		synchronized (authenticatingServers) {
			authenticatingServers.put(organization, secret);
		}
		return secret;
	}
	
	
	public static ServerUser serverAuthenticate(String organization, String address, 
			String challengeResponse) throws AuthenticationException,
			TException {
		/*
		 * TODO:
		 * Decrypt the given challengeResponse and check whether it was right or not.
		 * Authenticate server if so.
		 */
		return new ServerUser(organization, address);
	}
}