Mercurial > hg > AnnotationManagerN4J
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); |
