comparison src/main/java/de/mpiwg/itgroup/annotations/restlet/RestServer.java @ 5:bbf0cc5bee29

version 0.2 really works now
author casties
date Tue, 03 Jul 2012 21:23:17 +0200
parents 3599b29c393f
children 6dfbe2400f64
comparison
equal deleted inserted replaced
4:3599b29c393f 5:bbf0cc5bee29
38 * Properties holding consumer keys and secrets 38 * Properties holding consumer keys and secrets
39 */ 39 */
40 private Properties consumerKeys; 40 private Properties consumerKeys;
41 public String CONSUMER_KEYS_PATH = "WEB-INF/consumerkeys.property"; 41 public String CONSUMER_KEYS_PATH = "WEB-INF/consumerkeys.property";
42 42
43 private Properties serverConfig;
44 public String CONFIG_PROPS_PATH = "WEB-INF/serverconfig.property";
45
43 private GraphDatabaseService graphDb; 46 private GraphDatabaseService graphDb;
44 public static final String GRAPHDB_KEY = "annotationmanager.graphdb"; 47 public static final String GRAPHDB_KEY = "annotationmanager.graphdb";
45 public String DB_PATH = "WEB-INF/neo4j-annotation-db"; 48 public static final String GRAPHDB_PATH_KEY = "annotationmanager.graphdb.path";
49 public String graphdbPath = "WEB-INF/neo4j-annotation-db";
46 50
47 private WrappingNeoServerBootstrapper srv; 51 private WrappingNeoServerBootstrapper srv;
48 public static final String GRAPHDBSRV_KEY = "annotationmanager.graphdb.srv"; 52 public static final String GRAPHDBSRV_KEY = "annotationmanager.graphdb.srv";
49 53
50 private AnnotationStore store; 54 private AnnotationStore store;
61 BasicConfigurator.configure(); 65 BasicConfigurator.configure();
62 66
63 ServletContext sc = (ServletContext) getContext().getServerDispatcher().getContext().getAttributes() 67 ServletContext sc = (ServletContext) getContext().getServerDispatcher().getContext().getAttributes()
64 .get("org.restlet.ext.servlet.ServletContext"); 68 .get("org.restlet.ext.servlet.ServletContext");
65 if (sc != null) { 69 if (sc != null) {
70 /*
71 * read config from webapp
72 */
73 serverConfig = new Properties();
74 InputStream ps1 = getResourceAsStream(sc, CONFIG_PROPS_PATH);
75 if (ps1 != null) {
76 logger.debug("loading config from " + CONFIG_PROPS_PATH);
77 try {
78 serverConfig.load(ps1);
79 /*
80 * read serverconfig options
81 */
82 graphdbPath = serverConfig.getProperty(GRAPHDB_PATH_KEY, graphdbPath);
83 } catch (IOException e) {
84 logger.warn("Error loading server config: ", e);
85 }
86 logger.debug("config: " + serverConfig);
87 } else {
88 logger.error("Unable to get resource " + CONFIG_PROPS_PATH);
89 }
66 // look for database service in context 90 // look for database service in context
67 graphDb = (GraphDatabaseService) sc.getAttribute(GRAPHDB_KEY); 91 graphDb = (GraphDatabaseService) sc.getAttribute(GRAPHDB_KEY);
68 if (graphDb == null) { 92 if (graphDb == null) {
69 /* 93 /*
70 * open database 94 * open database
71 */ 95 */
72 String dbFn = getResourcePath(sc, DB_PATH); 96 String dbFn = getResourcePath(sc, graphdbPath);
73 if (dbFn != null) { 97 if (dbFn != null) {
74 logger.debug("opening DB " + dbFn); 98 logger.debug("opening DB " + dbFn);
75 graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(dbFn); 99 graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(dbFn);
76 registerShutdownHook(graphDb); 100 registerShutdownHook(graphDb);
77 // store in context 101 // store in context
84 logger.debug("Starting DB admin server..."); 108 logger.debug("Starting DB admin server...");
85 // store in context 109 // store in context
86 sc.setAttribute(GRAPHDBSRV_KEY, srv); 110 sc.setAttribute(GRAPHDBSRV_KEY, srv);
87 srv.start(); 111 srv.start();
88 } else { 112 } else {
89 logger.error("Unable to get resource " + DB_PATH); 113 logger.error("Unable to get resource " + dbFn);
90 } 114 }
91 } 115 }
92 /* 116 /*
93 * read consumerKeys from webapp 117 * read consumerKeys from webapp
94 */ 118 */
95 consumerKeys = new Properties(); 119 consumerKeys = new Properties();
96 InputStream ps = getResourceAsStream(sc, CONSUMER_KEYS_PATH); 120 InputStream ps2 = getResourceAsStream(sc, CONSUMER_KEYS_PATH);
97 if (ps != null) { 121 if (ps2 != null) {
98 logger.debug("loading consumer keys from " + CONSUMER_KEYS_PATH); 122 logger.debug("loading consumer keys from " + CONSUMER_KEYS_PATH);
99 try { 123 try {
100 consumerKeys.load(ps); 124 consumerKeys.load(ps2);
101 } catch (IOException e) { 125 } catch (IOException e) {
102 // TODO Auto-generated catch block 126 // TODO Auto-generated catch block
103 e.printStackTrace(); 127 e.printStackTrace();
104 } 128 }
105 logger.debug("consumer keys: " + consumerKeys); 129 logger.debug("consumer keys: " + consumerKeys);
152 * Hole den vollen Benutzernamen aus dem LDAP 176 * Hole den vollen Benutzernamen aus dem LDAP
153 * 177 *
154 * @param creator 178 * @param creator
155 * @return 179 * @return
156 */ 180 */
157 public String getUserNameFromLdap(String creator) { 181 public String getFullNameFromLdap(String creator) {
158 String retString = creator; // falls nichts gefunden wird einfach den 182 String retString = creator; // falls nichts gefunden wird einfach den
159 // creator zurueckgeben 183 // creator zurueckgeben
160 Hashtable<String, String> env = new Hashtable<String, String>(); 184 Hashtable<String, String> env = new Hashtable<String, String>();
161 String sp = "com.sun.jndi.ldap.LdapCtxFactory"; 185 String sp = "com.sun.jndi.ldap.LdapCtxFactory";
162 env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, sp); 186 env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, sp);
163 187
164 // TODO: should go into config file 188 // TODO: should go into config file
165 String ldapUrl = "ldap://ldapreplik.mpiwg-berlin.mpg.de/dc=mpiwg-berlin,dc=mpg,dc=de"; 189 String ldapUrl = "ldap://ldap.mpiwg-berlin.mpg.de/dc=mpiwg-berlin,dc=mpg,dc=de";
166 env.put(javax.naming.Context.PROVIDER_URL, ldapUrl); 190 env.put(javax.naming.Context.PROVIDER_URL, ldapUrl);
167 191
168 DirContext dctx; 192 DirContext dctx;
169 try { 193 try {
170 dctx = new InitialDirContext(env); 194 dctx = new InitialDirContext(env);
172 // TODO Auto-generated catch block 196 // TODO Auto-generated catch block
173 e1.printStackTrace(); 197 e1.printStackTrace();
174 return retString; 198 return retString;
175 } 199 }
176 200
177 String base = "ou=People"; 201 String base = "ou=people";
178 202
179 SearchControls sc = new SearchControls(); 203 SearchControls sc = new SearchControls();
180 String[] attributeFilter = { "cn", "mail" }; 204 String[] attributeFilter = { "cn", "mail" };
181 sc.setReturningAttributes(attributeFilter); 205 sc.setReturningAttributes(attributeFilter);
182 sc.setSearchScope(SearchControls.SUBTREE_SCOPE); 206 sc.setSearchScope(SearchControls.SUBTREE_SCOPE);