Skip to content
Permalink
 
 
Cannot retrieve contributors at this time
140 lines (121 sloc) 4.31 KB
/*
* Created on 27.05.2005
* Author: Moritz Kroll
*/
package jplagHomepage;
import java.rmi.RemoteException;
import java.util.Iterator;
import javax.xml.rpc.handler.Handler;
import javax.xml.rpc.handler.HandlerChain;
import jplagWsClient.jplagClient.JPlagException;
import jplagWsClient.jplagClient.JPlagService_Impl;
import jplagWsClient.jplagClient.JPlagTyp_Stub;
import jplagWsClient.jplagClient.RequestData;
import jplagWsClient.jplagClient.SetDeveloperStateParams;
import jplagWsClient.util.JPlagClientAccessHandler;
public class JPlagBean {
private JPlagTyp_Stub stub = null;
public JPlagBean() {
// Setup SSL stuff to allow message encryption
// System.setProperty("javax.net.ssl.trustStorePassword", "gulpie!");
// System.setProperty("javax.net.ssl.trustStore", System.getProperty("catalina.home") + File.separator + "server.trust");
// System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
// java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
stub = (JPlagTyp_Stub) (new JPlagService_Impl().getJPlagServicePort());
// Set the server page login data
HandlerChain handlerchain = stub._getHandlerChain();
@SuppressWarnings("unchecked")
Iterator<Handler> handlers = handlerchain.iterator();
while (handlers.hasNext()) {
Handler handler = handlers.next();
if (handler instanceof JPlagClientAccessHandler) {
((JPlagClientAccessHandler) handler).setUserPassObjects("JPlagJSP", "#Ca+#h8n4un!");
return;
}
}
throw new RuntimeException("JPlagBean(): Unable to find client access" + " handler!");
}
/**
* Converts an exception into a string depending on its type and logs a
* stack trace if it's not a JPlagException
*/
public String checkException(Exception ex) {
if (ex instanceof JPlagException) {
JPlagException jex = (JPlagException) ex;
return "JPlagException: " + jex.getExceptionType() + ": " + jex.getDescription() + "<br />" + jex.getRepair();
} else if (ex instanceof RemoteException) {
ex.printStackTrace();
return "RemoteException: " + ex.toString();
} else {
ex.printStackTrace();
return "Unknown exception: " + ex.toString();
}
}
/**
* @return an empty String if the user doesn't exist, otherwise an error
* message
*/
public String existsUsername(String username) {
try {
RequestData rd = new RequestData(null, username, null, null, null, null, null, null, null);
if (!stub.requestAccount(rd))
return "Username already exists, please choose another one!";
return "";
} catch (Exception ex) {
return checkException(ex);
}
}
/**
* Sends an account request to the server
*
* @return An empty string on success, an error string on failure
*/
public String requestAccount(JSPRequestData reqd) {
try {
RequestData rd = new RequestData(null, reqd.getUsername(), reqd.getPassword(), reqd.getRealname(), reqd.getEmail(),
reqd.getAltEmail(), reqd.getHomepage(), reqd.getReason() + "\n" + "Institution: " + reqd.getUniSchool(),
reqd.getNotes());
if (!stub.requestAccount(rd))
return "Username already exists, please choose another one!";
return "";
} catch (Exception ex) {
return checkException(ex);
}
}
/**
* Sends a provided account activation code to the server validating it. The
* username is part of the code.
*
* @return An empty string on success, an error string on failure
*/
public String validateEmail(String code) {
try {
RequestData rd = new RequestData(null, null, code, null, null, null, null, null, null);
if (!stub.requestAccount(rd))
return "The activation code is not correct! Please make sure" + "The code is the same as the one in the email you "
+ "received!";
return "";
} catch (Exception ex) {
return checkException(ex);
}
}
public String extendAccount(String code) {
try {
stub.extendAccount(code);
return "";
} catch (Exception ex) {
return checkException(ex);
}
}
public String setDeveloperState(JSPDeveloperData data) {
try {
SetDeveloperStateParams dsp = new SetDeveloperStateParams(data.getUsername(), data.getPassword(), data.getSignAsDeveloper());
stub.setDeveloperState(dsp);
return "";
} catch (JPlagException ex) {
return ex.getDescription() + "<br />" + ex.getRepair();
} catch (Exception ex) {
return checkException(ex);
}
}
}
You can’t perform that action at this time.