AuthenticationException
without
16 | * detail message.
17 | */
18 | public AuthenticationException() {
19 | }
20 |
21 | /**
22 | * Constructs an instance of AuthenticationException
with the
23 | * specified detail message.
24 | *
25 | * @param msg
26 | * the detail message.
27 | */
28 | public AuthenticationException(String msg) {
29 | super(msg);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/SSOValidationService/Library/src/main/java/org/rub/nds/futuretrust/validationservice/sso/library/AuthenticationVerifier.java:
--------------------------------------------------------------------------------
1 | package org.rub.nds.futuretrust.validationservice.sso.library;
2 |
3 | import org.rub.nds.futuretrust.cvs.sso.api.AuthenticationType;
4 | import org.rub.nds.futuretrust.cvs.sso.api.DatabaseType;
5 | import org.rub.nds.futuretrust.cvs.sso.api.EntityType;
6 | import org.rub.nds.futuretrust.cvs.sso.api.VerificationRequestType;
7 |
8 | /**
9 | *
10 | * @author vladi
11 | */
12 | public class AuthenticationVerifier {
13 |
14 | public static EntityType authenticate(DatabaseType db, VerificationRequestType request)
15 | throws AuthenticationException {
16 | if (request.getAuthentication() == null) {
17 | throw new AuthenticationException("No authentication information found.");
18 | }
19 | if (request.getAuthentication().getMethod() == null) {
20 | return verifyClientIDSecret(db, request);
21 | } else if (request.getAuthentication().getMethod().equalsIgnoreCase("cert")) {
22 | return verifyCert(db, request);
23 | } else if (request.getAuthentication().getMethod().equalsIgnoreCase("pop")) {
24 | throw new AuthenticationException("Not implemented.");
25 | } else {
26 | return verifyClientIDSecret(db, request);
27 | }
28 | }
29 |
30 | private static EntityType verifyClientIDSecret(DatabaseType db, VerificationRequestType request)
31 | throws AuthenticationException {
32 | for (EntityType entity : db.getRegisteredEntity()) {
33 | for (AuthenticationType auth : entity.getAuthentication()) {
34 | if (request.getAuthentication().getClientId().equals(auth.getClientId())
35 | && request.getAuthentication().getClientSecret().equals(auth.getClientSecret())) {
36 | return entity;
37 | }
38 | }
39 | }
40 | throw new AuthenticationException("Authentication not successful!");
41 | }
42 |
43 | private static EntityType verifyCert(DatabaseType db, VerificationRequestType request)
44 | throws AuthenticationException {
45 | for (EntityType entity : db.getRegisteredEntity()) {
46 | for (AuthenticationType auth : entity.getAuthentication()) {
47 | if (request.getAuthentication().getClientCert().equals(auth.getClientCert())) {
48 | return entity;
49 | }
50 | }
51 | }
52 | throw new AuthenticationException("Authentication not successful!");
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/SSOValidationService/Library/src/main/java/org/rub/nds/futuretrust/validationservice/sso/library/ConfigDatabase.java:
--------------------------------------------------------------------------------
1 | package org.rub.nds.futuretrust.validationservice.sso.library;
2 |
3 | import org.rub.nds.futuretrust.cvs.sso.api.DatabaseType;
4 |
5 | /**
6 | *
7 | * @author vladi
8 | */
9 |
10 | public class ConfigDatabase {
11 | private static DatabaseType config;
12 |
13 | private ConfigDatabase() {
14 | }
15 |
16 | public static ConfigDatabase getInstance() {
17 | return ConfigDatabaseHolder.INSTANCE;
18 | }
19 |
20 | private static class ConfigDatabaseHolder {
21 |
22 | private static final ConfigDatabase INSTANCE = new ConfigDatabase();
23 | }
24 |
25 | public static DatabaseType getConfig() {
26 | return config;
27 | }
28 |
29 | public static void setConfig(DatabaseType config) {
30 | ConfigDatabase.config = config;
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/SSOValidationService/Library/src/main/java/org/rub/nds/futuretrust/validationservice/sso/library/ConfigurationManager.java:
--------------------------------------------------------------------------------
1 | package org.rub.nds.futuretrust.validationservice.sso.library;
2 |
3 | import java.io.File;
4 | import javax.servlet.ServletContextEvent;
5 | import javax.servlet.ServletContextListener;
6 | import javax.xml.bind.JAXBContext;
7 | import javax.xml.bind.JAXBElement;
8 | import javax.xml.bind.JAXBException;
9 | import javax.xml.bind.Unmarshaller;
10 | import javax.xml.transform.Source;
11 | import javax.xml.transform.stream.StreamSource;
12 | import org.rub.nds.futuretrust.cvs.sso.api.DatabaseType;
13 | import org.rub.nds.saml.samllib.verifier.SAMLIDCache;
14 |
15 | /**
16 | *
17 | * @author Vladislav Mladenov VerificationException
without
16 | * detail message.
17 | */
18 | public VerificationException() {
19 | }
20 |
21 | /**
22 | * Constructs an instance of VerificationException
with the
23 | * specified detail message.
24 | *
25 | * @param msg
26 | * the detail message.
27 | */
28 | public VerificationException(String msg) {
29 | super(msg);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/SSOValidationService/Library/src/main/java/org/rub/nds/sso/provider/EidProvider.java:
--------------------------------------------------------------------------------
1 | package org.rub.nds.sso.provider;
2 |
3 | import org.rub.nds.sso.api.SsoType;
4 | import org.rub.nds.sso.api.VerificationProfileType;
5 | import org.rub.nds.sso.api.VerificationResponseType;
6 |
7 | /**
8 | *
9 | * @author Juraj Somorovsky - juraj.somorovsky@rub.de
10 | */
11 | public abstract class EidProvider {
12 |
13 | private final String name;
14 |
15 | private final String info;
16 |
17 | private final double version;
18 |
19 | private final String type;
20 |
21 | private VerificationProfileType verificationProfileType;
22 |
23 | private Object securityObject;
24 |
25 | public EidProvider(String name, String info, double version, String type) {
26 | this.name = name;
27 | this.info = info;
28 | this.version = version;
29 | this.type = type;
30 | }
31 |
32 | public abstract VerificationResponseType verify(SsoType ssoType);
33 |
34 | public void setSecurityObject(Object type) {
35 | this.securityObject = type;
36 | }
37 |
38 | public Object getSecurityObject() {
39 | return securityObject;
40 | }
41 |
42 | public void setVerificationProfile(VerificationProfileType verificationProfile) {
43 | this.verificationProfileType = verificationProfile;
44 | }
45 |
46 | public VerificationProfileType getVerificationProfile() {
47 | return verificationProfileType;
48 | }
49 |
50 | public String getName() {
51 | return name;
52 | }
53 |
54 | public String getInfo() {
55 | return info;
56 | }
57 |
58 | public double getVersion() {
59 | return version;
60 | }
61 |
62 | public String getType() {
63 | return type;
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/SSOValidationService/Library/src/main/java/org/rub/nds/sso/provider/EidSecurity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * To change this license header, choose License Headers in Project Properties.
3 | * To change this template file, choose Tools | Templates
4 | * and open the template in the editor.
5 | */
6 | package org.rub.nds.sso.provider;
7 |
8 | import java.util.HashSet;
9 | import java.util.LinkedList;
10 | import java.util.List;
11 | import java.util.Set;
12 |
13 | /**
14 | *
15 | * @author Juraj Somorovsky - juraj.somorovsky@rub.de
16 | */
17 | public class EidSecurity {
18 |
19 | private static List15 | This schema document describes the XML namespace, in a form 16 | suitable for import by other schema documents. 17 |
18 |19 | See 20 | http://www.w3.org/XML/1998/namespace.html and 21 | 22 | http://www.w3.org/TR/REC-xml for information 23 | about this namespace. 24 |
25 |26 | Note that local names in this namespace are intended to be 27 | defined only by the World Wide Web Consortium or its subgroups. 28 | The names currently defined in this namespace are listed below. 29 | They should not be used with conflicting semantics by any Working 30 | Group, specification, or document instance. 31 |
32 |33 | See further below in this document for more information about how to refer to this schema document from your own 35 | XSD schema documents and about the 36 | namespace-versioning policy governing this schema document. 37 |
38 |50 | denotes an attribute whose value 51 | is a language code for the natural language of the content of 52 | any element; its value is inherited. This name is reserved 53 | by virtue of its definition in the XML specification.
54 | 55 |59 | Attempting to install the relevant ISO 2- and 3-letter 60 | codes as the enumerated possible values is probably never 61 | going to be a realistic possibility. 62 |
63 |64 | See BCP 47 at 65 | http://www.rfc-editor.org/rfc/bcp/bcp47.txt 66 | and the IANA language subtag registry at 67 | 68 | http://www.iana.org/assignments/language-subtag-registry 69 | for further information. 70 |
71 |72 | The union allows for the 'un-declaration' of xml:lang with 73 | the empty string. 74 |
75 |96 | denotes an attribute whose 97 | value is a keyword indicating what whitespace processing 98 | discipline is intended for the content of the element; its 99 | value is inherited. This name is reserved by virtue of its 100 | definition in the XML specification.
101 | 102 |119 | denotes an attribute whose value 120 | provides a URI to be used as the base for interpreting any 121 | relative URIs in the scope of the element on which it 122 | appears; its value is inherited. This name is reserved 123 | by virtue of its definition in the XML Base specification.
124 | 125 |126 | See http://www.w3.org/TR/xmlbase/ 128 | for information about this attribute. 129 |
130 |142 | denotes an attribute whose value 143 | should be interpreted as if declared to be of type ID. 144 | This name is reserved by virtue of its definition in the 145 | xml:id specification.
146 | 147 |148 | See http://www.w3.org/TR/xml-id/ 150 | for information about this attribute. 151 |
152 |172 | denotes Jon Bosak, the chair of 173 | the original XML Working Group. This name is reserved by 174 | the following decision of the W3C XML Plenary and 175 | XML Coordination groups: 176 |
177 |178 |185 |179 | In appreciation for his vision, leadership and 180 | dedication the W3C XML Plenary on this 10th day of 181 | February, 2000, reserves for Jon Bosak in perpetuity 182 | the XML name "xml:Father". 183 |
184 |
197 | This schema defines attributes and an attribute group suitable
198 | for use by schemas wishing to allow xml:base
,
199 | xml:lang
, xml:space
or
200 | xml:id
attributes on elements they define.
201 |
203 | To enable this, such a schema must import this schema for 204 | the XML namespace, e.g. as follows: 205 |
206 |207 | <schema . . .> 208 | . . . 209 | <import namespace="http://www.w3.org/XML/1998/namespace" 210 | schemaLocation="http://www.w3.org/2001/xml.xsd"/> 211 |212 |
213 | or 214 |
215 |216 | <import namespace="http://www.w3.org/XML/1998/namespace" 217 | schemaLocation="http://www.w3.org/2009/01/xml.xsd"/> 218 |219 |
220 | Subsequently, qualified reference to any of the attributes or the 221 | group defined below will have the desired effect, e.g. 222 |
223 |224 | <type . . .> 225 | . . . 226 | <attributeGroup ref="xml:specialAttrs"/> 227 |228 |
229 | will define a type which will schema-validate an instance element 230 | with any of those attributes. 231 |
232 |243 | In keeping with the XML Schema WG's standard versioning 244 | policy, this schema document will persist at 245 | 246 | http://www.w3.org/2009/01/xml.xsd. 247 |
248 |249 | At the date of issue it can also be found at 250 | 251 | http://www.w3.org/2001/xml.xsd. 252 |
253 |254 | The schema document at that URI may however change in the future, 255 | in order to remain compatible with the latest version of XML 256 | Schema itself, or with the XML namespace itself. In other words, 257 | if the XML Schema or XML namespaces change, the version of this 258 | document at 259 | http://www.w3.org/2001/xml.xsd 260 | 261 | will change accordingly; the version at 262 | 263 | http://www.w3.org/2009/01/xml.xsd 264 | 265 | will not change. 266 |
267 |268 | Previous dated (and unchanging) versions of this schema 269 | document are at: 270 |
271 | 281 |