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