Imported Upstream version 2.4+dfsg
[shibboleth/sp.git] / shibsp / attribute / filtering / impl / DummyAttributeFilter.cpp
1 /*\r
2  *  Copyright 2010 Internet2\r
3  * \r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 /**\r
18  * DummyAttributeFilter.cpp\r
19  * \r
20  * Pathological AttributeFilter that rejects all attributes.\r
21  */\r
22 \r
23 #include "internal.h"\r
24 #include "attribute/Attribute.h"\r
25 #include "attribute/filtering/AttributeFilter.h"\r
26 \r
27 using namespace shibsp;\r
28 using namespace xmltooling;\r
29 using namespace std;\r
30 \r
31 namespace shibsp {\r
32 \r
33     class SHIBSP_DLLLOCAL DummyAttributeFilter : public AttributeFilter\r
34     {\r
35     public:\r
36         DummyAttributeFilter(const DOMElement* e) {\r
37         }\r
38         virtual ~DummyAttributeFilter() {\r
39         }\r
40         \r
41         Lockable* lock() {\r
42             return this;\r
43         }\r
44         void unlock() {\r
45         }\r
46         \r
47         void filterAttributes(const FilteringContext& context, vector<Attribute*>& attributes) const {\r
48             Category::getInstance(SHIBSP_LOGCAT".AttributeFilter.Dummy").warn("filtering out all attributes");\r
49             for_each(attributes.begin(), attributes.end(), xmltooling::cleanup<Attribute>());\r
50             attributes.clear();\r
51         }\r
52     };\r
53 \r
54     AttributeFilter* SHIBSP_DLLLOCAL DummyAttributeFilterFactory(const DOMElement* const & e)\r
55     {\r
56         return new DummyAttributeFilter(e);\r
57     }\r
58 };\r