This file is indexed.

/usr/include/arc/infosys/InfoFilter.h is in nordugrid-arc-dev 4.2.0-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <arc/message/MessageAuth.h>

/*
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns="http://www.nordugrid.org/schemas/InfoFilter/2008"
  xmlns:if="http://www.nordugrid.org/schemas/InfoFilter/2008"
  targetNamespace="http://www.nordugrid.org/schemas/InfoFilter/2008"
  elementFormDefault="qualified">

    <xsd:complexType name="InfoFilterDefinition_Type">
        <!-- This element defines information document filtering definition. -->
        <xsd:sequence>
            <!-- Filter contains one authorization policy to by applied -->
            <xsd:any minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
        <!-- Attribute 'id' defines reference used by InfoFilterTag elements -->
        <xsd:attribute name="id" type="xsd:string" use="optional"/>
    </xsd:complexType>
    <xsd:element name="InfoFilterDefinition" type="if:InfoFilterDefinition_Type"/>

    <!-- InfoFilterTag refers to Filter which has to be applied to current node -->
    <xsd:attribute name="InfoFilterTag">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string"/>
        </xsd:simpleType>
    </xsd:attribute>

</xsd:schema>
*/

namespace Arc {

typedef std::list< std::pair<std::string,XMLNode> > InfoFilterPolicies;

/// Filters information document according to identity of requestor
/** Identity is compared to policies stored inside information 
document and external ones. Parts of document which do not pass 
policy evaluation are removed. */
class InfoFilter {
 private:
  MessageAuth& id_;
 public:
  /// Creates object and associates identity
  /** Associated identity is not copied, hence passed argument must not be 
     destroyed while this method is used. */
  InfoFilter(MessageAuth& id);
  /// Filter information document according to internal policies
  /** In provided document all policies and nodes which have their policies
     evaluated to negative result are removed. */
  bool Filter(XMLNode doc) const;
  /// Filter information document according to internal and external policies
  /** In provided document all policies and nodes which have their policies
     evaluated to negative result are removed. External policies are provided 
     in policies argument. First element of every pair is XPath defining to 
     which XML node policy must be applied. Second element is policy itself.
     Argument ns defines XML namespaces for XPath evaluation. */
  bool Filter(XMLNode doc,const InfoFilterPolicies& policies,const NS& ns) const;
};

} // namespace Arc