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 }