1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package edu.internet2.middleware.shibboleth.common.config.attribute.resolver.attributeDefinition;
19
20 import java.io.FileInputStream;
21 import java.io.IOException;
22
23 import org.opensaml.xml.util.DatatypeHelper;
24
25 import edu.internet2.middleware.shibboleth.common.attribute.resolver.provider.attributeDefinition.ScriptedAttributeDefinition;
26
27
28
29
30 public class ScriptedAttributeDefinitionFactoryBean extends BaseAttributeDefinitionFactoryBean {
31
32
33 private String scriptLanguage;
34
35
36 private String scriptFile;
37
38
39 private String script;
40
41
42
43
44
45
46 public String getLanguage() {
47 return scriptLanguage;
48 }
49
50
51
52
53
54
55 public void setLanguage(String language) {
56 scriptLanguage = DatatypeHelper.safeTrimOrNullString(language);
57 }
58
59
60
61
62
63
64 public String getScript() {
65 return script;
66 }
67
68
69
70
71
72
73 public void setScript(String newScript) {
74 script = DatatypeHelper.safeTrimOrNullString(newScript);
75 }
76
77
78
79
80
81
82 public String getScriptFile() {
83 return scriptFile;
84 }
85
86
87
88
89
90
91 public void setScriptFile(String file) {
92 scriptFile = DatatypeHelper.safeTrimOrNullString(file);
93 }
94
95
96 public Class getObjectType() {
97 return ScriptedAttributeDefinition.class;
98 }
99
100
101 protected Object createInstance() throws Exception {
102 ScriptedAttributeDefinition definition = new ScriptedAttributeDefinition(scriptLanguage);
103 populateAttributeDefinition(definition);
104
105 try {
106 if (getScript() == null) {
107 FileInputStream ins = new FileInputStream(scriptFile);
108 byte[] scriptBytes = new byte[ins.available()];
109 ins.read(scriptBytes);
110 script = new String(script);
111 }
112 } catch (IOException e) {
113 throw e;
114 }
115 definition.setScript(script);
116
117 definition.initialize();
118
119 return definition;
120 }
121 }