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