1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.opensaml.saml2.core.validator;
21
22 import org.opensaml.common.SAMLVersion;
23 import org.opensaml.saml2.core.StatusResponseType;
24 import org.opensaml.xml.util.DatatypeHelper;
25 import org.opensaml.xml.validation.ValidationException;
26 import org.opensaml.xml.validation.Validator;
27
28
29
30
31 public abstract class StatusResponseTypeSchemaValidator<StatusResponse extends StatusResponseType> implements Validator<StatusResponse> {
32
33
34
35
36
37 public StatusResponseTypeSchemaValidator() {
38 }
39
40
41 public void validate(StatusResponse response) throws ValidationException {
42 validateStatus(response);
43 validateID(response);
44 validateVersion(response);
45 validateIssueInstant(response);
46
47 }
48
49
50
51
52
53
54
55 protected void validateStatus(StatusResponse response) throws ValidationException {
56 if (response.getStatus() == null)
57 throw new ValidationException("Status is required");
58
59 }
60
61
62
63
64
65
66
67 protected void validateID(StatusResponse response) throws ValidationException {
68 if (DatatypeHelper.isEmpty(response.getID()))
69 throw new ValidationException("ID attribute must not be empty");
70 }
71
72
73
74
75
76
77
78 protected void validateVersion(StatusResponse response) throws ValidationException {
79 if (response.getVersion() == null)
80 throw new ValidationException("Version attribute must not be null");
81 if (response.getVersion().toString() != SAMLVersion.VERSION_20.toString())
82 throw new ValidationException("Wrong SAML Version");
83 }
84
85
86
87
88
89
90
91 protected void validateIssueInstant(StatusResponse response) throws ValidationException {
92 if (response.getIssueInstant() == null)
93 throw new ValidationException ("IssueInstant attribute must not be null");
94 }
95
96 }