Mercurial > dive4elements > river
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 } |