} finally{
userAdminSession.setUserStatus(admin, userDataWS.getUsername(), UserDataConstants.STATUS_GENERATED);
}
// Add hard token data
HardToken hardToken;
String signatureInitialPIN = "";
String signaturePUK = "";
String basicInitialPIN = "";
String basicPUK = "";
Iterator<PinDataWS> iter = hardTokenDataWS.getPinDatas().iterator();
while(iter.hasNext()){
PinDataWS pinData = iter.next();
switch(pinData.getType()){
case HardTokenConstants.PINTYPE_BASIC :
basicInitialPIN = pinData.getInitialPIN();
basicPUK = pinData.getPUK();
break;
case HardTokenConstants.PINTYPE_SIGNATURE :
signatureInitialPIN = pinData.getInitialPIN();
signaturePUK = pinData.getPUK();
break;
default :
throw EjbcaWSHelper.getEjbcaException("Unsupported PIN Type " + pinData.getType(),
logger, ErrorCode.NOT_SUPPORTED_PIN_TYPE, null);
}
}
int tokenType = SwedishEIDHardToken.THIS_TOKENTYPE;
switch (hardTokenDataWS.getTokenType()){
case HardTokenConstants.TOKENTYPE_SWEDISHEID :
hardToken = new SwedishEIDHardToken(basicInitialPIN,basicPUK,signatureInitialPIN,signaturePUK,0);
break;
case HardTokenConstants.TOKENTYPE_ENHANCEDEID :
hardToken = new EnhancedEIDHardToken(signatureInitialPIN,signaturePUK,basicInitialPIN,basicPUK,false,0);
tokenType = EnhancedEIDHardToken.THIS_TOKENTYPE;
break;
default:
throw EjbcaWSHelper.getEjbcaException("Unsupported Token Type : " + hardTokenDataWS.getTokenType(),
logger, ErrorCode.NOT_SUPPORTED_TOKEN_TYPE, null);
}
hardToken.setLabel(hardTokenDataWS.getLabel());
if(overwriteExistingSN){
if(hardTokenExists){
try {
hardTokenSession.removeHardToken(admin, hardTokenDataWS.getHardTokenSN());
} catch (HardTokenDoesntExistsException e) {