1 /** 2 * Licensed to the University Corporation for Advanced Internet 3 * Development, Inc. (UCAID) under one or more contributor license 4 * agreements. See the NOTICE file distributed with this work for 5 * additional information regarding copyright ownership. 6 * 7 * UCAID licenses this file to you under the Apache License, 8 * Version 2.0 (the "License"); you may not use this file except 9 * in compliance with the License. You may obtain a copy of the 10 * License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 17 * either express or implied. See the License for the specific 18 * language governing permissions and limitations under the License. 19 */ 20 21 /** 22 * @file saml/saml2/binding/SAML2ArtifactType0004.h 23 * 24 * Type 0x0004 SAML 2.0 artifact class. 25 */ 26 27 #ifndef __saml_artifacttype0004_h__ 28 #define __saml_artifacttype0004_h__ 29 30 #include <saml/saml2/binding/SAML2Artifact.h> 31 32 namespace opensaml { 33 namespace saml2p { 34 35 /** 36 * Type 0x0004 SAML 2.0 artifact class. 37 */ 38 class SAML_API SAML2ArtifactType0004 : public SAML2Artifact 39 { 40 SAML2ArtifactType0004& operator=(const SAML2ArtifactType0004& src); 41 public: 42 /** 43 * Decodes a base64-encoded type 0x0004 artifact 44 * 45 * @param s NULL-terminated base64-encoded string 46 */ 47 SAML2ArtifactType0004(const char* s); 48 49 /** 50 * Constructs an artifact with the specified source ID and index, but a random message handle. 51 * 52 * @param sourceid SOURCEID_LENGTH bytes of binary data 53 * @param index endpoint index 54 */ 55 SAML2ArtifactType0004(const std::string& sourceid, int index); 56 57 /** 58 * Constructs an artifact with the specified source ID and assertion handle. 59 * 60 * @param sourceid SOURCEID_LENGTH bytes of binary data 61 * @param index endpoint index 62 * @param handle HANDLE_LENGTH bytes of binary data 63 */ 64 SAML2ArtifactType0004(const std::string& sourceid, int index, const std::string& handle); 65 66 virtual ~SAML2ArtifactType0004(); 67 68 // Virtual function overrides. 69 SAML2ArtifactType0004* clone() const; 70 std::string getSource() const; 71 std::string getMessageHandle() const; 72 73 /** 74 * Returns the binary data that identifies the source. 75 * The result MAY contain embedded null characters. 76 * 77 * @return the binary source ID 78 */ 79 virtual std::string getSourceID() const; 80 81 /** Length of source ID */ 82 static const unsigned int SOURCEID_LENGTH; 83 84 /** Length of message handle */ 85 static const unsigned int HANDLE_LENGTH; 86 87 protected: 88 /** 89 * Copy constructor. 90 * 91 * @param src object to copy 92 */ 93 SAML2ArtifactType0004(const SAML2ArtifactType0004& src); 94 }; 95 96 }; 97 }; 98 99 #endif /* __saml_artifacttype0004_h__ */ 100