001 /*
002 * Cumulus4j - Securing your data in the cloud - http://cumulus4j.org
003 * Copyright (C) 2011 NightLabs Consulting GmbH
004 *
005 * This program is free software: you can redistribute it and/or modify
006 * it under the terms of the GNU Affero General Public License as
007 * published by the Free Software Foundation, either version 3 of the
008 * License, or (at your option) any later version.
009 *
010 * This program is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
013 * GNU Affero General Public License for more details.
014 *
015 * You should have received a copy of the GNU Affero General Public License
016 * along with this program. If not, see <http://www.gnu.org/licenses/>.
017 */
018 package org.cumulus4j.keymanager.back.shared;
019
020 import javax.xml.bind.annotation.XmlRootElement;
021
022 /**
023 * Super-class for all requests sent from app-server to key-manager.
024 *
025 * @author Marco หงุ่ยตระกูล-Schulze - marco at nightlabs dot de
026 * @see Response
027 */
028 @XmlRootElement
029 public abstract class Request extends Message
030 {
031 private static final long serialVersionUID = 1L;
032
033 private String cryptoSessionID;
034
035 public Request() { }
036
037 public Request(String cryptoSessionID)
038 {
039 if (cryptoSessionID == null)
040 throw new IllegalArgumentException("cryptoSessionID == null");
041
042 setRequestID(IdentifierUtil.createRandomID());
043 this.cryptoSessionID = cryptoSessionID;
044 }
045
046 public String getCryptoSessionID() {
047 return cryptoSessionID;
048 }
049 public void setCryptoSessionID(String cryptoSessionID) {
050 this.cryptoSessionID = cryptoSessionID;
051 }
052
053 public String getCryptoSessionIDPrefix()
054 {
055 String id = cryptoSessionID;
056 if (id == null)
057 return null;
058
059 int dotIdx = id.indexOf('.');
060 if (dotIdx < 0)
061 throw new IllegalStateException("cryptoSessionID does not contain a dot ('.')!!!");
062
063 return id.substring(0, dotIdx);
064 }
065
066 @Override
067 public String toString() {
068 return super.toString() + '[' + getRequestID() + ',' + cryptoSessionID + ']';
069 }
070 }