annotate gwt-client/src/main/java/org/dive4elements/river/client/server/auth/saml/SamlNamespaceContext.java @ 5938:231a834d4e28

Add NamespaceContext for SAML handling.
author Bernhard Herzog <bh@intevation.de>
date Wed, 08 May 2013 17:56:13 +0200
parents
children 7b0db743f074
rev   line source
5938
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt f�r Gew�sserkunde
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
3 *
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
7 */
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
8
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.client.server.auth.saml;
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
10
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
11 import java.util.Iterator;
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
12
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
13 import javax.xml.XMLConstants;
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
14 import javax.xml.namespace.NamespaceContext;
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
15
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
16
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
17 /**
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
18 * The namespace context for SAML documents.
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
19 */
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
20 public class SamlNamespaceContext implements NamespaceContext
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
21 {
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
22 /**
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
23 * The URI of the namespace of SAML assertions.
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
24 */
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
25 public static final String SAML_NS_ASSERT =
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
26 "urn:oasis:names:tc:SAML:1.0:assertion";
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
27
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
28 /**
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
29 * The URI of the namespace of the SAML protocol.
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
30 */
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
31 public static final String SAML_NS_PROTO =
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
32 "urn:oasis:names:tc:SAML:1.0:protocol";
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
33
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
34 /**
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
35 * The URI of the namespace for XML signatures.
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
36 */
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
37 public static final String XML_SIG_NS =
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
38 "http://www.w3.org/2000/09/xmldsig#";
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
39
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
40 /**
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
41 * Final instance to be easily used to avoid creation
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
42 * of instances.
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
43 */
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
44 public static final SamlNamespaceContext INSTANCE =
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
45 new SamlNamespaceContext();
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
46
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
47
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
48 /**
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
49 * The default constructor.
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
50 */
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
51 public SamlNamespaceContext() {
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
52 }
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
53
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
54
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
55 /**
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
56 * @see javax.xml.namespace.NamespaceContext#getNamespaceURI(String)
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
57 * @param prefix The prefix
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
58 * @return The corresponing URI
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
59 */
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
60 public String getNamespaceURI(String prefix) {
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
61
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
62 if (prefix == null) {
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
63 throw new NullPointerException("Null prefix");
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
64 }
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
65
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
66 if ("saml".equals(prefix)) {
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
67 return SAML_NS_ASSERT;
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
68 }
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
69
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
70 if ("samlp".equals(prefix)) {
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
71 return SAML_NS_PROTO;
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
72 }
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
73
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
74 if ("ds".equals(prefix)) {
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
75 return XML_SIG_NS;
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
76 }
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
77
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
78 if ("xml".equals(prefix)) {
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
79 return XMLConstants.XML_NS_URI;
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
80 }
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
81
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
82 return XMLConstants.NULL_NS_URI;
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
83 }
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
84
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
85
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
86 /**
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
87 * @see javax.xml.namespace.NamespaceContext#getPrefix(String)
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
88 * @param uri The URI
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
89 * @return nothing.
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
90 * @throws java.lang.UnsupportedOperationException
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
91 */
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
92 public String getPrefix(String uri) {
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
93 throw new UnsupportedOperationException();
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
94 }
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
95
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
96
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
97 /**
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
98 * @see javax.xml.namespace.NamespaceContext#getPrefixes(java.lang.String)
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
99 * @param uri The URI
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
100 * @return nothing
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
101 * @throws java.lang.UnsupportedOperationException
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
102 */
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
103 public Iterator getPrefixes(String uri) {
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
104 throw new UnsupportedOperationException();
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
105 }
231a834d4e28 Add NamespaceContext for SAML handling.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
106 }

http://dive4elements.wald.intevation.org