r102 - in trunk/wikitty-api: . src/main/java/org/nuiton/wikitty src/main/java/org/nuiton/wikitty/importexport src/main/uml/wikitty-api
Author: bpoussin Date: 2010-06-07 13:10:32 +0200 (Mon, 07 Jun 2010) New Revision: 102 Url: http://nuiton.org/repositories/revision/wikitty/102 Log: Preparation pour l'ajout de la security - ajout des methodes login/logout - ajout du token dans toutes les methodes - ajout des extensions User, Group, Authorisation, SecurityToken Added: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java trunk/wikitty-api/src/main/uml/wikitty-api/wikitty-security.zargo Modified: trunk/wikitty-api/pom.xml trunk/wikitty-api/src/main/java/org/nuiton/wikitty/PagedResult.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyImportExportService.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ExportTask.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportMethod.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportXML.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportTask.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/WikittyBatchUpdate.java Modified: trunk/wikitty-api/pom.xml =================================================================== --- trunk/wikitty-api/pom.xml 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/pom.xml 2010-06-07 11:10:32 UTC (rev 102) @@ -214,8 +214,12 @@ <zargoResources> <input>${maven.src.dir}/main/uml/wikitty-api</input> </zargoResources> + <xmiResources> + <inputs><input>${maven.gen.dir}/xmi</input></inputs> + </xmiResources> <includes>**/*.objectmodel</includes> <templates>org.nuiton.wikitty.generator.WikittyMetaGenerator</templates> + <fullPackagePath>org.nuiton.wikitty</fullPackagePath> <defaultPackage>org.nuiton.wikitty</defaultPackage> <extractedPackages>org.nuiton.wikitty</extractedPackages> <generatedPackages>org.nuiton.wikitty</generatedPackages> Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/PagedResult.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/PagedResult.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/PagedResult.java 2010-06-07 11:10:32 UTC (rev 102) @@ -50,9 +50,12 @@ protected List<T> results; /** facet asked or null if no facet */ protected Map<String, List<FacetTopic>> facets; + /** securityToken of user that generate this PagedResult */ + protected String securityToken; - public PagedResult(int firstIndice, int numFound, String queryString, + public PagedResult(String secuirtyToken, int firstIndice, int numFound, String queryString, Map<String, List<FacetTopic>> facets, List<T> results) { + this.securityToken = secuirtyToken; this.firstIndice = firstIndice; this.numFound = numFound; this.queryString = queryString; @@ -98,7 +101,8 @@ Collection<WikittyExtension> wikittyExtension = w.getExtensions(); if (autoconvert || wikittyExtension.containsAll(wantedExtension)) { - E e = WikittyUtil.newInstance(wikittyService, clazz, (Wikitty) t); + E e = WikittyUtil.newInstance( + securityToken, wikittyService, clazz, (Wikitty) t); castedResult.add(e); } else { throw new WikittyException(String.format( @@ -109,7 +113,7 @@ } } } - PagedResult<E> result = new PagedResult<E>( + PagedResult<E> result = new PagedResult<E>(securityToken, firstIndice, numFound, queryString, facets, castedResult); return result; } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java 2010-06-07 11:10:32 UTC (rev 102) @@ -41,6 +41,10 @@ /** * Recursively add extension with requires ones (orderer). + * WikittyService used in this method must not have WikittyServiceSecurity + * in stack because we pass null as secuirtyToken to method. (TODO poussin + * 2010 verify this assertion, when we use Migration, we don't need + * Security) * * @param service service * @param transaction current transaction to use @@ -53,7 +57,9 @@ String requires = newExt.getRequires(); if (StringUtils.isNotEmpty(requires)) { for (String require : requires.split(",")) { - WikittyExtension newRequireExt = service.restoreExtensionLastVersion(transaction, require); + WikittyExtension newRequireExt = + service.restoreExtensionLastVersion( + null, transaction, require); addExtension(service, transaction, wikitty, newRequireExt); } } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyImportExportService.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyImportExportService.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyImportExportService.java 2010-06-07 11:10:32 UTC (rev 102) @@ -85,8 +85,10 @@ new HashMap<String, Future<String>>(); protected WikittyService ws; + protected String securityToken; - public WikittyImportExportService(WikittyService ws) { + public WikittyImportExportService(String securityToken, WikittyService ws) { + this.securityToken = securityToken; this.ws = ws; } @@ -96,7 +98,7 @@ public void syncImport(FORMAT format, String s) { Reader reader = new StringReader(s); - ImportTask task = new ImportTask(ws, format, reader); + ImportTask task = new ImportTask(securityToken, ws, format, reader); task.run(); } @@ -104,7 +106,7 @@ try { URL url = new URL(uri); Reader reader = new InputStreamReader(url.openStream()); - ImportTask task = new ImportTask(ws, format, reader); + ImportTask task = new ImportTask(securityToken, ws, format, reader); task.run(); } catch (Exception eee) { throw new WikittyException(eee); @@ -115,7 +117,7 @@ try { URL url = new URL(uri); Reader reader = new InputStreamReader(url.openStream()); - ImportTask task = new ImportTask(ws, format, reader); + ImportTask task = new ImportTask(securityToken, ws, format, reader); FutureTask<String> future = new FutureTask<String>(task, null); importExportExecutor.submit(future); @@ -167,7 +169,8 @@ File file = new File(EXPORT_DIRECTORY, jobId); String url = EXPORT_URL + jobId; Writer result = new FileWriter(file); - ExportTask task = new ExportTask(ws, format, criteria, result); + ExportTask task = new ExportTask( + securityToken, ws, format, criteria, result); FutureTask<String> future = new FutureTask<String>(task, url); importExportExecutor.submit(future); @@ -187,7 +190,8 @@ */ public String syncExportAllByCriteria(FORMAT format, Criteria criteria) { StringWriter result = new StringWriter(); - ExportTask task = new ExportTask(ws, format, criteria, result); + ExportTask task = new ExportTask( + securityToken, ws, format, criteria, result); task.run(); return result.toString(); } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-06-07 11:10:32 UTC (rev 102) @@ -44,7 +44,26 @@ public class WikittyProxy { protected WikittyService wikittyService; - + protected String securityToken = null; + + public String login(String login, String password) { + String result = wikittyService.login(login, password); + setSecurityToken(result); + return result; + } + + public void logout() { + wikittyService.logout(securityToken); + } + + public String getSecurityToken() { + return securityToken; + } + + public void setSecurityToken(String securityToken) { + this.securityToken = securityToken; + } + public WikittyService getWikittyService() { return wikittyService; } @@ -55,7 +74,7 @@ public <E extends BusinessEntity> E store(E e) { Wikitty w = WikittyUtil.beanToWikitty(e); - UpdateResponse resp = wikittyService.store(w); + UpdateResponse resp = wikittyService.store(securityToken, w); resp.update(e); return e; } @@ -76,7 +95,7 @@ } // call the service with Wikitty - UpdateResponse resp = wikittyService.store(wikitties); + UpdateResponse resp = wikittyService.store(securityToken, wikitties); // update object for (E e : objets) { @@ -99,7 +118,7 @@ E result = null; HashSet<String> extNames = null; try { - Wikitty wikitty = wikittyService.restore(id); + Wikitty wikitty = wikittyService.restore(securityToken, id); if(wikitty == null) { return null; } @@ -107,7 +126,8 @@ if (checkExtension) { extNames = new HashSet<String>(wikitty.getExtensionNames()); } - result = WikittyUtil.newInstance(wikittyService, clazz, wikitty); + result = WikittyUtil.newInstance( + securityToken, wikittyService, clazz, wikitty); } catch (Exception eee) { throw new WikittyException(eee); } @@ -153,7 +173,7 @@ public <E extends BusinessEntity> List<E> restore( Class<E> clazz, List<String> id, boolean checkExtension) { - List<Wikitty> wikitties = wikittyService.restore(id); + List<Wikitty> wikitties = wikittyService.restore(securityToken, id); List<E> result = new ArrayList<E>(); for (Wikitty w : wikitties) { HashSet<String> extNames = null; @@ -161,7 +181,8 @@ extNames = new HashSet<String>(w.getExtensionNames()); } - E dto = WikittyUtil.newInstance(wikittyService, clazz, w); + E dto = WikittyUtil.newInstance( + securityToken, wikittyService, clazz, w); if (checkExtension) { // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl BusinessEntityWikitty b = (BusinessEntityWikitty) dto; @@ -185,11 +206,11 @@ } public void delete(String id) { - wikittyService.delete(id); + wikittyService.delete(securityToken, id); } public void delete(Collection<String> ids) { - wikittyService.delete(ids); + wikittyService.delete(securityToken, ids); } public <E extends BusinessEntityWikitty> PagedResult<E> findAllByExample(E e, @@ -199,18 +220,21 @@ .setFirstIndex(firstIndex).setEndIndex(endIndex) .setFacetField(fieldFacet); - PagedResult<Wikitty> pagedResult = wikittyService.findAllByCriteria(criteria); + PagedResult<Wikitty> pagedResult = wikittyService.findAllByCriteria( + securityToken, criteria); // we can use autoconvert = true because search by example add automaticaly // restriction on extension - PagedResult<E> result = (PagedResult<E>)pagedResult.cast(wikittyService, e.getClass(), true); + PagedResult<E> result = (PagedResult<E>)pagedResult.cast( + wikittyService, e.getClass(), true); return result; } public <E extends BusinessEntityWikitty> E findByExample(E e) { Criteria criteria = Search.query(e.getWikitty()).criteria(); - Wikitty w = wikittyService.findByCriteria(criteria); - E result = (E)WikittyUtil.newInstance(wikittyService, e.getClass(), w); + Wikitty w = wikittyService.findByCriteria(securityToken, criteria); + E result = (E)WikittyUtil.newInstance( + securityToken, wikittyService, e.getClass(), w); return result; } @@ -273,7 +297,8 @@ } } - PagedResult<Wikitty> pagedResult = wikittyService.findAllByCriteria(serviceCriteria); + PagedResult<Wikitty> pagedResult = wikittyService.findAllByCriteria( + securityToken, serviceCriteria); // we can cast with autoconvert true because we have add restriction // on extension @@ -292,43 +317,48 @@ criteria = search.criteria(criteria.getName()); - Wikitty w = wikittyService.findByCriteria(criteria); - E result = WikittyUtil.newInstance(wikittyService, clazz, w); + Wikitty w = wikittyService.findByCriteria(securityToken, criteria); + E result = WikittyUtil.newInstance( + securityToken, wikittyService, clazz, w); return result; } public void addLabel(String wikittyId, String label) { - wikittyService.addLabel(wikittyId, label); + wikittyService.addLabel(securityToken, wikittyId, label); } public PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex) { - PagedResult<Wikitty> result = wikittyService.findAllByLabel( + PagedResult<Wikitty> result = wikittyService.findAllByLabel(securityToken, label, firstIndex, endIndex); return result; } public Wikitty findByLabel(String label) { - Wikitty result = wikittyService.findByLabel(label); + Wikitty result = wikittyService.findByLabel(securityToken, label); return result; } public Set<String> findAllAppliedLabels(String wikittyId) { - Set<String> result = wikittyService.findAllAppliedLabels(wikittyId); + Set<String> result = wikittyService.findAllAppliedLabels( + securityToken, wikittyId); return result; } public Tree restoreTree(String wikittyId) { - Tree result = wikittyService.restoreTree(wikittyId); + Tree result = wikittyService.restoreTree(securityToken, wikittyId); return result; } - public <E extends BusinessEntity> Map.Entry<E, Integer> restoreNode(Class<E> clazz, String wikittyId, Criteria filter) { + public <E extends BusinessEntity> Map.Entry<E, Integer> restoreNode( + Class<E> clazz, String wikittyId, Criteria filter) { Entry<E, Integer> result = restoreNode(clazz, wikittyId, filter, false); return result; } - public <E extends BusinessEntity> Map.Entry<E, Integer> restoreNode(Class<E> clazz, String wikittyId, Criteria filter, boolean checkExtension) { - Map.Entry<TreeNode, Integer> node = wikittyService.restoreNode(wikittyId, filter); + public <E extends BusinessEntity> Map.Entry<E, Integer> restoreNode( + Class<E> clazz, String wikittyId, Criteria filter, boolean checkExtension) { + Map.Entry<TreeNode, Integer> node = wikittyService.restoreNode( + securityToken, wikittyId, filter); if(node == null) { return null; } @@ -343,14 +373,17 @@ return result; } - public <E extends BusinessEntity> Map<E, Integer> restoreChildren(Class<E> clazz, String wikittyId, Criteria filter) { + public <E extends BusinessEntity> Map<E, Integer> restoreChildren( + Class<E> clazz, String wikittyId, Criteria filter) { Map<E, Integer> result = restoreChildren(clazz, wikittyId, filter, false); return result; } - public <E extends BusinessEntity> Map<E, Integer> restoreChildren(Class<E> clazz, String wikittyId, Criteria filter, boolean checkExtension) { + public <E extends BusinessEntity> Map<E, Integer> restoreChildren( + Class<E> clazz, String wikittyId, Criteria filter, boolean checkExtension) { - Map<TreeNode, Integer> result = wikittyService.restoreChildren(wikittyId, filter); + Map<TreeNode, Integer> result = wikittyService.restoreChildren( + securityToken, wikittyId, filter); if(result == null) { return null; } @@ -367,11 +400,12 @@ E businessEntity = null; HashSet<String> extNames = null; try { - Wikitty wikitty = wikittyService.restore(nodeId); + Wikitty wikitty = wikittyService.restore(securityToken, nodeId); if(checkExtension) { extNames = new HashSet<String>(wikitty.getExtensionNames()); } - businessEntity = WikittyUtil.newInstance(wikittyService, clazz, wikitty); + businessEntity = WikittyUtil.newInstance( + securityToken, wikittyService, clazz, wikitty); } catch (Exception eee) { throw new WikittyException(eee); } @@ -379,10 +413,13 @@ boolean goodType = true; if(checkExtension) { // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl - BusinessEntityWikitty businessEntityImpl = (BusinessEntityWikitty) businessEntity; - Collection<WikittyExtension> staticExtensions = businessEntityImpl.getStaticExtensions(); + BusinessEntityWikitty businessEntityImpl = + (BusinessEntityWikitty) businessEntity; + Collection<WikittyExtension> staticExtensions = + businessEntityImpl.getStaticExtensions(); - for (Iterator<WikittyExtension> iterator = staticExtensions.iterator(); iterator.hasNext() && goodType;) { + for (Iterator<WikittyExtension> iterator = + staticExtensions.iterator(); iterator.hasNext() && goodType;) { WikittyExtension ext = iterator.next(); if (!extNames.contains(ext.getName())) { // extension wanted by BusinessEntity (clazz) @@ -402,7 +439,8 @@ } public Wikitty restoreVersion(String wikittyId, String version) { - Wikitty result = wikittyService.restoreVersion(wikittyId, version); + Wikitty result = wikittyService.restoreVersion( + securityToken, wikittyId, version); return result; } @@ -410,12 +448,13 @@ E result = null; HashSet<String> extNames = null; try { - Wikitty wikitty = wikittyService.restore(wikittyId); + Wikitty wikitty = wikittyService.restore(securityToken, wikittyId); if(wikitty == null) { return false; } extNames = new HashSet<String>(wikitty.getExtensionNames()); - result = WikittyUtil.newInstance(wikittyService, clazz, wikitty); + result = WikittyUtil.newInstance( + securityToken, wikittyService, clazz, wikitty); } catch (Exception eee) { throw new WikittyException(eee); } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java 2010-06-07 11:10:32 UTC (rev 102) @@ -67,8 +67,31 @@ * @see ServiceListenerType */ public void removeWikittyServiceListener(WikittyServiceListener listener, ServiceListenerType type); - + /* + * security + */ + + /** + * Authenticate someone on WikittyService. securityToken returned must be + * used to call others methods + * + * @param login can be application specifique login, but best practice is + * to use email user + * @param password + * @return return token securityToken + */ + public String login(String login, String password); + + /** + * Unanthenticate someone by disabled securityToken + * + * @param securityToken security token previously returned by login. If + * securityToken is not valid, this method do nothing + */ + public void logout(String securityToken); + + /* * Storage */ @@ -76,21 +99,21 @@ * Use with caution : It will delete ALL indexes from search engine ! * This operation should be disabled in production environment. */ - public void clear(); + public void clear(String securityToken); /** * Manage Update and creation. * * @param wikitty contains an id all the time. */ - UpdateResponse store(Wikitty wikitty); + public UpdateResponse store(String securityToken, Wikitty wikitty); /** * Manage Update and creation. * * @param wikitties list of wikitty to be persisted */ - UpdateResponse store(Collection<Wikitty> wikitties); + public UpdateResponse store(String securityToken, Collection<Wikitty> wikitties); /** * Manage Update and creation. @@ -99,7 +122,7 @@ * @param disableAutoVersionIncrement boolean to disable version increment * on saved wikitty */ - UpdateResponse store(Collection<Wikitty> wikitties, + public UpdateResponse store(String securityToken, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement); @@ -112,34 +135,36 @@ * @param disableAutoVersionIncrement boolean to disable version increment * on saved wikitty */ - UpdateResponse store(WikittyTransaction transaction, + public UpdateResponse store(String securityToken, WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement); /** * Return all extension id (ex: "extName[version])") * @return */ - List<String> getAllExtensionIds(); + public List<String> getAllExtensionIds(String securityToken); /** - * Return all extension id (ex: "extName[version])") where extensionName is required. + * Return all extension id (ex: "extName[version])") where extensionName is + * required. * @return */ - List<String> getAllExtensionsRequires(String extensionName); + public List<String> getAllExtensionsRequires(String securityToken, String extensionName); /** * Manage Update and creation. * * @param wikitty extension to be persisted */ - UpdateResponse storeExtension(WikittyExtension ext); + public UpdateResponse storeExtension(String securityToken, WikittyExtension ext); /** * Manage Update and creation. * * @param exts list of wikitty extension to be persisted */ - UpdateResponse storeExtension(Collection<WikittyExtension> exts); + public UpdateResponse storeExtension(String securityToken, + Collection<WikittyExtension> exts); /** * Manage Update and creation, action is done in transaction passed in @@ -148,15 +173,15 @@ * @param transaction transaction used to do the action (must not be null) * @param exts list of wikitty extension to be persisted */ - UpdateResponse storeExtension(WikittyTransaction transaction, - Collection<WikittyExtension> exts); + public UpdateResponse storeExtension(String securityToken, + WikittyTransaction transaction, Collection<WikittyExtension> exts); /** * * @param id * @return the corresponding object, exception if no such object found. */ - public WikittyExtension restoreExtension(String id); + public WikittyExtension restoreExtension(String securityToken, String id); /** * action is done in transaction passed in argument @@ -165,15 +190,16 @@ * @param id * @return the corresponding object, exception if no such object found. */ - public WikittyExtension restoreExtension(WikittyTransaction transaction, - String id); + public WikittyExtension restoreExtension(String securityToken, + WikittyTransaction transaction, String id); /** * Search extension with name in last version * @param name * @return the corresponding object, exception if no such object found. */ - public WikittyExtension restoreExtensionLastVersion(String name); + public WikittyExtension restoreExtensionLastVersion( + String securityToken, String name); /** * @@ -181,7 +207,7 @@ * @return the corresponding object, or null if object doesn't exist or is * deleted */ - Wikitty restore( String id ); + public Wikitty restore(String securityToken, String id); /** * @@ -190,26 +216,27 @@ * or deleted) this id is skip and result list have less elements than * collection argument */ - List<Wikitty> restore( List<String> id ); + public List<Wikitty> restore(String securityToken, List<String> id); /** * delete object if id exists * @param id object's id to remove */ - void delete(String id); + public void delete(String securityToken, String id); /** * delete all object if id exists * @param ids object's ids to remove */ - void delete(Collection<String> ids); + public void delete(String securityToken, Collection<String> ids); /** * * @param criteria * @return */ - public PagedResult<Wikitty> findAllByCriteria(Criteria criteria); + public PagedResult<Wikitty> findAllByCriteria( + String securityToken, Criteria criteria); /** * @@ -217,7 +244,7 @@ * @param criteria * @return */ - public PagedResult<Wikitty> findAllByCriteria( + public PagedResult<Wikitty> findAllByCriteria(String securityToken, WikittyTransaction transaction, Criteria criteria); /** @@ -225,7 +252,7 @@ * @param criteria * @return */ - public Wikitty findByCriteria(Criteria criteria); + public Wikitty findByCriteria(String securityToken, Criteria criteria); /* * Labelisation @@ -236,28 +263,29 @@ * @param wikittyId id of wikitty object to add label * @param label label to add */ - void addLabel(String wikittyId, String label); + public void addLabel(String securityToken, String wikittyId, String label); /** * * @param label * @return */ - PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex); + public PagedResult<Wikitty> findAllByLabel(String securityToken, + String label, int firstIndex, int endIndex); /** * * @param addLabel * @return */ - Wikitty findByLabel(String label); + public Wikitty findByLabel(String securityToken, String label); /** * retrieve all labels applied on a wikitty object * @param wikittyId * @return */ - Set<String> findAllAppliedLabels(String wikittyId); + public Set<String> findAllAppliedLabels(String securityToken, String wikittyId); /* @@ -272,7 +300,7 @@ * @param wikittyId * @return */ - Tree restoreTree(String wikittyId); + public Tree restoreTree(String securityToken, String wikittyId); /** * Retrieve wikitty node with count. Wikitty reference by wikittyId MUST @@ -280,7 +308,8 @@ * @param wikittyId * @return */ - Map.Entry<TreeNode, Integer> restoreNode(String wikittyId, Criteria filter); + public Map.Entry<TreeNode, Integer> restoreNode(String securityToken, + String wikittyId, Criteria filter); /** * Retrieve all wikitties children with count (no recursively) of an other one @@ -289,7 +318,8 @@ * @param wikittyId * @return */ - Map<TreeNode, Integer> restoreChildren(String wikittyId, Criteria filter); + public Map<TreeNode, Integer> restoreChildren(String securityToken, + String wikittyId, Criteria filter); /* @@ -299,7 +329,8 @@ /** * */ - Wikitty restoreVersion(String wikittyId, String version); + public Wikitty restoreVersion(String securityToken, + String wikittyId, String version); /* * admin @@ -310,6 +341,6 @@ * reindex all wikitties. * @return */ - UpdateResponse syncEngin(); + public UpdateResponse syncEngin(String securityToken); } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java 2010-06-07 11:10:32 UTC (rev 102) @@ -53,10 +53,8 @@ /** Cache. */ protected WikittyCache cache = null; - /** Delegated wikitty service implementation. */ protected WikittyService ws; - /** * Default constructor. * @@ -73,9 +71,8 @@ * @param props properties (can be null) */ public WikittyServiceCached(WikittyService ws, Properties props) { + this.ws = ws; cache = WikittyCache.getInstance(); - this.ws = ws; - registerWikittyServiceListener(props); } @@ -102,18 +99,8 @@ } @Override - public void addWikittyServiceListener(WikittyServiceListener listener, ServiceListenerType type) { - ws.addWikittyServiceListener(listener, type); - } - - @Override - public void removeWikittyServiceListener(WikittyServiceListener listener, ServiceListenerType type) { - ws.removeWikittyServiceListener(listener, type); - } - - @Override - public void clear() { - ws.clear(); + public void clear(String securityToken) { + ws.clear(securityToken); cache.clearWikitty(); } @@ -124,9 +111,9 @@ * @param label */ @Override - public void addLabel(String wikittyId, String label) { - ws.addLabel(wikittyId, label); - restore(wikittyId); + public void addLabel(String securityToken, String wikittyId, String label) { + ws.addLabel(securityToken, wikittyId, label); + restore(securityToken, wikittyId); } /** @@ -134,8 +121,8 @@ * @param id */ @Override - public void delete(String id) { - ws.delete(id); + public void delete(String securityToken, String id) { + ws.delete(securityToken, id); cache.removeWikitty(id); } @@ -144,8 +131,8 @@ * @param ids */ @Override - public void delete(Collection<String> ids) { - ws.delete(ids); + public void delete(String securityToken, Collection<String> ids) { + ws.delete(securityToken, ids); cache.removeAllWikitty(ids); } @@ -156,10 +143,10 @@ * @return */ @Override - public Set<String> findAllAppliedLabels(String wikittyId) { + public Set<String> findAllAppliedLabels(String securityToken, String wikittyId) { // if we want to add cache for this method, we must clear cache when // addLabel is called - return ws.findAllAppliedLabels(wikittyId); + return ws.findAllAppliedLabels(securityToken, wikittyId); } /** @@ -169,10 +156,11 @@ * @return */ @Override - public PagedResult<Wikitty> findAllByCriteria(Criteria criteria) { + public PagedResult<Wikitty> findAllByCriteria( + String securityToken, Criteria criteria) { // if we want to add cache for this method, we must clear cache when // addLabel, store, storeExtension are called - return ws.findAllByCriteria(criteria); + return ws.findAllByCriteria(securityToken, criteria); } /** @@ -182,10 +170,11 @@ * @return */ @Override - public PagedResult<Wikitty> findAllByCriteria(WikittyTransaction transaction, Criteria criteria) { + public PagedResult<Wikitty> findAllByCriteria(String securityToken, + WikittyTransaction transaction, Criteria criteria) { // if we want to add cache for this method, we must clear cache when // addLabel, store, storeExtension are called - return ws.findAllByCriteria(transaction, criteria); + return ws.findAllByCriteria(securityToken, transaction, criteria); } @@ -198,10 +187,11 @@ * @return */ @Override - public PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex) { + public PagedResult<Wikitty> findAllByLabel(String securityToken, + String label, int firstIndex, int endIndex) { // if we want to add cache for this method, we must clear cache when // addLabel is called - return ws.findAllByLabel(label, firstIndex, endIndex); + return ws.findAllByLabel(securityToken, label, firstIndex, endIndex); } /** @@ -211,10 +201,10 @@ * @return */ @Override - public Wikitty findByCriteria(Criteria criteria) { + public Wikitty findByCriteria(String securityToken, Criteria criteria) { // if we want to add cache for this method, we must clear cache when // addLabel, store, storeExtension are called - return ws.findByCriteria(criteria); + return ws.findByCriteria(securityToken, criteria); } /** @@ -224,10 +214,10 @@ * @return */ @Override - public Wikitty findByLabel(String label) { + public Wikitty findByLabel(String securityToken, String label) { // if we want to add cache for this method, we must clear cache when // addLabel is called - return ws.findByLabel(label); + return ws.findByLabel(securityToken, label); } /** @@ -236,9 +226,9 @@ * @return */ @Override - public List<String> getAllExtensionIds() { + public List<String> getAllExtensionIds(String securityToken) { // TODO poussin 20100412: perhaps use cache for extension ? - return ws.getAllExtensionIds(); + return ws.getAllExtensionIds(securityToken); } /** @@ -248,9 +238,10 @@ * @return */ @Override - public List<String> getAllExtensionsRequires(String extensionName) { + public List<String> getAllExtensionsRequires( + String securityToken, String extensionName) { // TODO poussin 20100412: perhaps use cache for extension ? - return ws.getAllExtensionsRequires(extensionName); + return ws.getAllExtensionsRequires(securityToken, extensionName); } /** @@ -260,10 +251,10 @@ * @return */ @Override - public Wikitty restore(String id) { + public Wikitty restore(String securityToken, String id) { Wikitty result = cache.getWikitty(id); if (result == null) { - result = ws.restore(id); + result = ws.restore(securityToken, id); cache.putWikitty(result); } return result; @@ -276,7 +267,7 @@ * @return */ @Override - public List<Wikitty> restore(List<String> ids) { + public List<Wikitty> restore(String securityToken, List<String> ids) { ArrayList<String> notInCache = new ArrayList<String>(); // linked to maintains the ordre LinkedHashMap<String, Wikitty> fromCache = @@ -290,7 +281,7 @@ } // retrieve missing object - List<Wikitty> missingInCache = ws.restore(notInCache); + List<Wikitty> missingInCache = ws.restore(securityToken, notInCache); cache.putAllWikitty(missingInCache); @@ -313,9 +304,10 @@ * @return */ @Override - public Map<TreeNode, Integer> restoreChildren(String wikittyId, Criteria filter) { + public Map<TreeNode, Integer> restoreChildren( + String securityToken, String wikittyId, Criteria filter) { // FIXME lookup in cache, and put in cache - return ws.restoreChildren(wikittyId, filter); + return ws.restoreChildren(securityToken, wikittyId, filter); } /** @@ -325,9 +317,9 @@ * @return */ @Override - public WikittyExtension restoreExtension(String id) { + public WikittyExtension restoreExtension(String securityToken, String id) { // TODO poussin 20100412: perhaps use cache for extension ? - return ws.restoreExtension(id); + return ws.restoreExtension(securityToken, id); } /** @@ -337,9 +329,10 @@ * @return */ @Override - public WikittyExtension restoreExtensionLastVersion(String name) { + public WikittyExtension restoreExtensionLastVersion( + String securityToken, String name) { // TODO poussin 20100412: perhaps use cache for extension ? - return ws.restoreExtensionLastVersion(name); + return ws.restoreExtensionLastVersion(securityToken, name); } /** @@ -350,9 +343,10 @@ * @return */ @Override - public Entry<TreeNode, Integer> restoreNode(String wikittyId, Criteria filter) { + public Entry<TreeNode, Integer> restoreNode( + String securityToken, String wikittyId, Criteria filter) { // FIXME lookup in cache, and put in cache - return ws.restoreNode(wikittyId, filter); + return ws.restoreNode(securityToken, wikittyId, filter); } /** @@ -362,9 +356,9 @@ * @return */ @Override - public Tree restoreTree(String wikittyId) { + public Tree restoreTree(String securityToken, String wikittyId) { // FIXME lookup in cache, and put in cache - return ws.restoreTree(wikittyId); + return ws.restoreTree(securityToken, wikittyId); } /** @@ -373,8 +367,8 @@ * @return */ @Override - public UpdateResponse store(Wikitty wikitty) { - UpdateResponse result = ws.store(wikitty); + public UpdateResponse store(String securityToken, Wikitty wikitty) { + UpdateResponse result = ws.store(securityToken, wikitty); result.update(wikitty); cache.putWikitty(wikitty); @@ -389,8 +383,8 @@ * @return */ @Override - public UpdateResponse store(Collection<Wikitty> wikitties) { - UpdateResponse result = ws.store(wikitties); + public UpdateResponse store(String securityToken, Collection<Wikitty> wikitties) { + UpdateResponse result = ws.store(securityToken, wikitties); for (Wikitty w : wikitties) { result.update(w); @@ -408,8 +402,9 @@ * @return */ @Override - public UpdateResponse store(Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) { - UpdateResponse result = ws.store(wikitties, disableAutoVersionIncrement); + public UpdateResponse store(String securityToken, + Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) { + UpdateResponse result = ws.store(securityToken, wikitties, disableAutoVersionIncrement); for (Wikitty w : wikitties) { result.update(w); @@ -427,11 +422,12 @@ * @return */ @Override - public UpdateResponse store(WikittyTransaction transaction, + public UpdateResponse store(String securityToken, WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) { // FIXME poussin 2010 comment gerer le cache avec des transactions ???? - UpdateResponse result = ws.store(transaction, wikitties, disableAutoVersionIncrement); + UpdateResponse result = ws.store(securityToken, transaction, + wikitties, disableAutoVersionIncrement); for (Wikitty w : wikitties) { result.update(w); @@ -449,9 +445,9 @@ * @return */ @Override - public UpdateResponse storeExtension(WikittyExtension ext) { + public UpdateResponse storeExtension(String securityToken, WikittyExtension ext) { // TODO poussin 20100412: perhaps use cache for extension ? - return ws.storeExtension(ext); + return ws.storeExtension(securityToken, ext); } /** @@ -461,33 +457,59 @@ * @return */ @Override - public UpdateResponse storeExtension(Collection<WikittyExtension> exts) { + public UpdateResponse storeExtension(String securityToken, Collection<WikittyExtension> exts) { // TODO poussin 20100412: perhaps use cache for extension ? - return ws.storeExtension(exts); + return ws.storeExtension(securityToken, exts); } @Override - public UpdateResponse storeExtension(WikittyTransaction transaction, Collection<WikittyExtension> exts) { + public UpdateResponse storeExtension(String securityToken, + WikittyTransaction transaction, Collection<WikittyExtension> exts) { // FIXME poussin 2010 comment gerer le cache avec des transactions ???? throw new UnsupportedOperationException("Not supported yet."); } @Override - public WikittyExtension restoreExtension(WikittyTransaction transaction, String id) { + public WikittyExtension restoreExtension(String securityToken, + WikittyTransaction transaction, String id) { // FIXME poussin 2010 comment gerer le cache avec des transactions ???? throw new UnsupportedOperationException("Not supported yet."); } @Override - public Wikitty restoreVersion(String wikittyId, String version) { + public Wikitty restoreVersion( + String securityToken, String wikittyId, String version) { // not put it in cache - return ws.restoreVersion(wikittyId, version); + return ws.restoreVersion(securityToken, wikittyId, version); } + // + // Just delegate method + // + @Override - public UpdateResponse syncEngin() { - return ws.syncEngin(); + public void addWikittyServiceListener(WikittyServiceListener listener, ServiceListenerType type) { + ws.addWikittyServiceListener(listener, type); } + @Override + public void removeWikittyServiceListener(WikittyServiceListener listener, ServiceListenerType type) { + ws.removeWikittyServiceListener(listener, type); + } + @Override + public String login(String login, String password) { + return ws.login(login, password); + } + + @Override + public void logout(String securityToken) { + ws.logout(securityToken); + } + + @Override + public UpdateResponse syncEngin(String securityToken) { + return ws.syncEngin(securityToken); + } + } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java 2010-06-07 11:10:32 UTC (rev 102) @@ -105,7 +105,18 @@ } @Override - public UpdateResponse store(WikittyTransaction transaction, + public String login(String login, String password) { + log.warn("login asked, but there is no security service"); + return null; + } + + @Override + public void logout(String securityToken) { + log.warn("logout asked, but there is no security service"); + } + + @Override + public UpdateResponse store(String securityToken, WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) { // update/store extension if necessary Set<WikittyExtension> allExtensions = new HashSet<WikittyExtension>(); @@ -133,14 +144,15 @@ * @param wikitty */ @Override - public UpdateResponse store(Wikitty wikitty) { + public UpdateResponse store(String securityToken, Wikitty wikitty) { if (wikitty != null) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); List<Wikitty> wikitties = Arrays.asList(wikitty); - UpdateResponse result = store(transaction, wikitties, false); + UpdateResponse result = store( + securityToken, transaction, wikitties, false); transaction.commit(); return result; @@ -159,12 +171,13 @@ * @param wikitties */ @Override - public UpdateResponse store(Collection<Wikitty> wikitties) { + public UpdateResponse store(String securityToken, Collection<Wikitty> wikitties) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - UpdateResponse result = store(transaction, wikitties, false); + UpdateResponse result = store( + securityToken, transaction, wikitties, false); transaction.commit(); return result; @@ -180,12 +193,14 @@ * @param wikitties */ @Override - public UpdateResponse store(Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) { + public UpdateResponse store(String securityToken, + Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - UpdateResponse result = store(transaction, wikitties, disableAutoVersionIncrement); + UpdateResponse result = store(securityToken, + transaction, wikitties, disableAutoVersionIncrement); transaction.commit(); return result; @@ -196,7 +211,7 @@ } @Override - public List<String> getAllExtensionIds() { + public List<String> getAllExtensionIds(String securityToken) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); @@ -212,7 +227,8 @@ } @Override - public List<String> getAllExtensionsRequires(String extensionName) { + public List<String> getAllExtensionsRequires( + String securityToken, String extensionName) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); @@ -229,7 +245,8 @@ } @Override - public UpdateResponse storeExtension(WikittyTransaction transaction, Collection<WikittyExtension> exts) { + public UpdateResponse storeExtension(String securityToken, + WikittyTransaction transaction, Collection<WikittyExtension> exts) { UpdateResponse result = getExtensionStorage().store(transaction, exts); return result; } @@ -240,12 +257,14 @@ * @param exts */ @Override - public UpdateResponse storeExtension(Collection<WikittyExtension> exts) { + public UpdateResponse storeExtension(String securityToken, + Collection<WikittyExtension> exts) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - UpdateResponse result = storeExtension(transaction, exts); + UpdateResponse result = storeExtension( + securityToken, transaction, exts); transaction.commit(); return result; @@ -256,12 +275,13 @@ } @Override - public UpdateResponse storeExtension(WikittyExtension ext) { + public UpdateResponse storeExtension(String securityToken, WikittyExtension ext) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - UpdateResponse result = storeExtension(transaction, Arrays.asList(ext)); + UpdateResponse result = storeExtension( + securityToken, transaction, Arrays.asList(ext)); transaction.commit(); return result; @@ -272,7 +292,8 @@ } @Override - public WikittyExtension restoreExtension(WikittyTransaction transaction, String id) { + public WikittyExtension restoreExtension( + String securityToken, WikittyTransaction transaction, String id) { //split the id to ensure that version is normalized String name = WikittyExtension.computeName(id); String version = WikittyExtension.computeVersion(id); @@ -288,12 +309,13 @@ * @return extension */ @Override - public WikittyExtension restoreExtension(String id) { + public WikittyExtension restoreExtension(String securityToken, String id) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - WikittyExtension result = restoreExtension(transaction, id); + WikittyExtension result = restoreExtension( + securityToken, transaction, id); transaction.commit(); return result; @@ -304,7 +326,8 @@ } - protected WikittyExtension restoreExtensionLastVersion(WikittyTransaction transaction, String name) { + protected WikittyExtension restoreExtensionLastVersion(String securityToken, + WikittyTransaction transaction, String name) { String version = getExtensionStorage().getLastVersion(transaction, name); if(version == null) { return null; @@ -315,12 +338,14 @@ } @Override - public WikittyExtension restoreExtensionLastVersion(String name) { + public WikittyExtension restoreExtensionLastVersion( + String securityToken, String name) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - WikittyExtension result = restoreExtensionLastVersion(transaction, name); + WikittyExtension result = restoreExtensionLastVersion( + securityToken, transaction, name); transaction.commit(); return result; @@ -330,7 +355,8 @@ } } - protected Wikitty restore(WikittyTransaction transaction, String id) { + protected Wikitty restore(String securityToken, + WikittyTransaction transaction, String id) { if (!getWikittyStorage().exists(transaction, id)) { // object doesn't exist, we return null return null; @@ -342,15 +368,16 @@ } Wikitty result = getWikittyStorage().restore(transaction, id); if(result != null) { - result = upgradeData(transaction, result); + result = upgradeData(securityToken, transaction, result); } return result; } - protected List<Wikitty> restore(WikittyTransaction transaction, List<String> ids) { + protected List<Wikitty> restore(String securityToken, + WikittyTransaction transaction, List<String> ids) { List<Wikitty> result = new ArrayList<Wikitty>(); for(String id : ids) { - Wikitty w = restore(transaction, id); + Wikitty w = restore(securityToken, transaction, id); if (w != null) { result.add(w); } @@ -359,12 +386,12 @@ } @Override - public List<Wikitty> restore(List<String> ids) { + public List<Wikitty> restore(String securityToken, List<String> ids) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - List<Wikitty> result = restore(transaction, ids); + List<Wikitty> result = restore(securityToken, transaction, ids); transaction.commit(); return result; @@ -375,12 +402,12 @@ } @Override - public Wikitty restore(String id) { + public Wikitty restore(String securityToken, String id) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - Wikitty result = restore(transaction, id); + Wikitty result = restore(securityToken, transaction, id); transaction.commit(); return result; @@ -390,7 +417,8 @@ } } - protected Wikitty upgradeData(WikittyTransaction transaction, Wikitty wikitty) { + protected Wikitty upgradeData(String securityToken, + WikittyTransaction transaction, Wikitty wikitty) { Wikitty result = wikitty; Collection<WikittyExtension> extensions = wikitty.getExtensions(); @@ -401,7 +429,8 @@ WikittyExtension currentExtension = extension; String currentExtensionVersion = currentExtension.getVersion(); - WikittyExtension lastExtension = restoreExtensionLastVersion(transaction, extensionName); + WikittyExtension lastExtension = restoreExtensionLastVersion( + securityToken, transaction, extensionName); String lastExtensionVersion = lastExtension.getVersion(); log.debug("lastExtensionVersion=" + lastExtensionVersion); @@ -416,14 +445,16 @@ // Get extension after the current version String nextExtensionVersion = WikittyUtil.incrementMajorRevision(currentExtensionVersion); String nextExtensionId = WikittyExtension.computeId(extensionName, nextExtensionVersion); - WikittyExtension nextExtension = restoreExtension(transaction, nextExtensionId); + WikittyExtension nextExtension = restoreExtension( + securityToken, transaction, nextExtensionId); log.debug("currentExtensionVersion=" + currentExtensionVersion); log.debug("nextExtensionVersion=" + nextExtensionVersion); // Test if extension is never use in this version if(nextExtension != null) { - result = migration.migrate(this, transaction, result, currentExtension, nextExtension); + result = migration.migrate(this, transaction, result, + currentExtension, nextExtension); currentExtension = nextExtension; } @@ -435,7 +466,8 @@ return result; } - protected void delete(WikittyTransaction transaction, Collection<String> ids) throws WikittyException { + protected void delete(String securityToken, WikittyTransaction transaction, + Collection<String> ids) throws WikittyException { // work only on valid id Collection<Wikitty> storedWikitties = new ArrayList<Wikitty>(); List<String> idList = new LinkedList<String>(ids); @@ -453,7 +485,8 @@ // Store node with have deleted node as parent Criteria criteria = Search.query().eq(TreeNode.FQ_FIELD_PARENT, id).criteria(); - List<Wikitty> wikittyNodes = findAllByCriteria(transaction, criteria).getAll(); + List<Wikitty> wikittyNodes = findAllByCriteria( + securityToken, transaction, criteria).getAll(); for (Wikitty wikittyNode : wikittyNodes) { String wikittyNodeId = wikittyNode.getId(); if(!ids.contains(wikittyNodeId)) { @@ -465,7 +498,8 @@ // Store node with have deleted child criteria = Search.query().eq(TreeNode.FQ_FIELD_CHILDREN, id).criteria(); - wikittyNodes = findAllByCriteria(transaction, criteria).getAll(); + wikittyNodes = findAllByCriteria( + securityToken, transaction, criteria).getAll(); for (Wikitty wikittyNode : wikittyNodes) { String wikittyNodeId = wikittyNode.getId(); if(!ids.contains(wikittyNodeId)) { @@ -479,17 +513,17 @@ getWikittyStorage().delete(transaction, ids); getSearchEngin().delete(transaction, ids); - store(transaction, storedWikitties, false); + store(securityToken, transaction, storedWikitties, false); } @Override - public void delete(String id) { + public void delete(String securityToken, String id) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); List<String> ids = Arrays.asList(id); - delete(transaction, ids); + delete(securityToken, transaction, ids); transaction.commit(); } catch (Exception eee) { @@ -499,12 +533,12 @@ } @Override - public void delete(Collection<String> ids){ + public void delete(String securityToken, Collection<String> ids){ WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - delete(transaction, ids); + delete(securityToken, transaction, ids); transaction.commit(); } catch (Exception eee) { @@ -518,7 +552,7 @@ * This operation should be disabled in production environment. */ @Override - public void clear() { + public void clear(String securityToken) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); @@ -539,11 +573,13 @@ * return new PagedResult with Wikitty instance */ @Override - public PagedResult<Wikitty> findAllByCriteria(WikittyTransaction transaction, Criteria criteria) { + public PagedResult<Wikitty> findAllByCriteria(String securityToken, + WikittyTransaction transaction, Criteria criteria) { PagedResult<String> resultIds = getSearchEngin().findAllByCriteria(transaction, criteria); List<String> ids = resultIds.getAll(); - List<Wikitty> wikitties = restore(transaction, ids); + List<Wikitty> wikitties = restore(securityToken, transaction, ids); PagedResult<Wikitty> result = new PagedResult<Wikitty>( + securityToken, resultIds.getFirstIndice(), resultIds.getNumFound(), resultIds.getQueryString(), @@ -553,12 +589,14 @@ } @Override - public PagedResult<Wikitty> findAllByCriteria(Criteria criteria) { + public PagedResult<Wikitty> findAllByCriteria( + String securityToken, Criteria criteria) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - PagedResult<Wikitty> result = findAllByCriteria(transaction, criteria); + PagedResult<Wikitty> result = findAllByCriteria( + securityToken, transaction, criteria); transaction.commit(); return result; @@ -568,9 +606,11 @@ } } - protected Wikitty findByCriteria(WikittyTransaction transaction, Criteria criteria) { + protected Wikitty findByCriteria(String securityToken, + WikittyTransaction transaction, Criteria criteria) { criteria.setFirstIndex(0).setEndIndex(1); - PagedResult<Wikitty> pages = findAllByCriteria(transaction, criteria); + PagedResult<Wikitty> pages = findAllByCriteria( + securityToken, transaction, criteria); Wikitty result = null; if (pages.size() > 0) { @@ -581,12 +621,13 @@ } @Override - public Wikitty findByCriteria(Criteria criteria) { + public Wikitty findByCriteria(String securityToken, Criteria criteria) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - Wikitty result = findByCriteria(transaction, criteria); + Wikitty result = findByCriteria( + securityToken, transaction, criteria); transaction.commit(); return result; @@ -597,16 +638,16 @@ } @Override - public void addLabel(String wikittyId, String label) { + public void addLabel(String securityToken, String wikittyId, String label) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - Wikitty w = restore(transaction, wikittyId); + Wikitty w = restore(securityToken, transaction, wikittyId); w.addExtension(LabelImpl.extensions); LabelImpl l = new LabelImpl(w); l.addLabels(label); - store(transaction, Arrays.asList(w), false); + store(securityToken, transaction, Arrays.asList(w), false); transaction.commit(); } catch (Exception eee) { @@ -617,7 +658,8 @@ @Override - public PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex) { + public PagedResult<Wikitty> findAllByLabel(String securityToken, + String label, int firstIndex, int endIndex) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); @@ -626,7 +668,8 @@ l.addLabels(label); Criteria criteria = Search.query(l.getWikitty()).criteria() .setFirstIndex(firstIndex).setEndIndex(endIndex); - PagedResult<Wikitty> result = findAllByCriteria(transaction, criteria); + PagedResult<Wikitty> result = findAllByCriteria( + securityToken, transaction, criteria); transaction.commit(); return result; @@ -638,7 +681,7 @@ @Override - public Wikitty findByLabel(String label) { + public Wikitty findByLabel(String securityToken, String label) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); @@ -646,7 +689,7 @@ LabelImpl l = new LabelImpl(); l.addLabels(label); Criteria criteria = Search.query(l.getWikitty()).criteria(); - Wikitty result = findByCriteria(transaction, criteria); + Wikitty result = findByCriteria(securityToken, transaction, criteria); transaction.commit(); return result; @@ -658,12 +701,12 @@ @Override - public Set<String> findAllAppliedLabels(String wikittyId) { + public Set<String> findAllAppliedLabels(String securityToken, String wikittyId) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - Wikitty w = restore(transaction, wikittyId); + Wikitty w = restore(securityToken, transaction, wikittyId); LabelImpl l = new LabelImpl(w); Set<String> result = l.getLabels(); @@ -676,8 +719,9 @@ } - protected Tree restoreTree(WikittyTransaction transaction, String wikittyId) { - Wikitty w = restore(transaction, wikittyId); + protected Tree restoreTree(String securityToken, + WikittyTransaction transaction, String wikittyId) { + Wikitty w = restore(securityToken, transaction, wikittyId); if(w == null) { return null; } @@ -696,21 +740,22 @@ Criteria criteria = Search.query(exempleNode.getWikitty()).criteria() .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - PagedResult<Wikitty> childNodes = findAllByCriteria(transaction, criteria); + PagedResult<Wikitty> childNodes = findAllByCriteria( + securityToken, transaction, criteria); for( Wikitty childNode : childNodes.getAll() ) { - tree.addChild(restoreTree(transaction, childNode.getId())); + tree.addChild(restoreTree(securityToken, transaction, childNode.getId())); } return tree; } @Override - public Tree restoreTree(String wikittyId) { + public Tree restoreTree(String securityToken, String wikittyId) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - Tree tree = restoreTree(transaction, wikittyId); + Tree tree = restoreTree(securityToken, transaction, wikittyId); transaction.commit(); return tree; @@ -721,12 +766,13 @@ } @Override - public Map.Entry<TreeNode, Integer> restoreNode(String wikittyId, Criteria filter) { + public Map.Entry<TreeNode, Integer> restoreNode(String securityToken, + String wikittyId, Criteria filter) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - Wikitty w = restore(transaction, wikittyId); + Wikitty w = restore(securityToken, transaction, wikittyId); if(w == null) { transaction.commit(); return null; @@ -753,12 +799,13 @@ } @Override - public Map<TreeNode, Integer> restoreChildren(String wikittyId, Criteria filter) { + public Map<TreeNode, Integer> restoreChildren(String securityToken, + String wikittyId, Criteria filter) { WikittyTransaction transaction = new WikittyTransaction(); try { transaction.begin(); - Wikitty w = restore(transaction, wikittyId); + Wikitty w = restore(securityToken, transaction, wikittyId); if(w == null) { transaction.commit(); return null; @@ -772,13 +819,14 @@ Map<TreeNode, Integer> result = new LinkedHashMap<TreeNode, Integer>(); - Map<String, Integer> search = getSearchEngin().findAllChildrenCount(transaction, w, filter); + Map<String, Integer> search = getSearchEngin().findAllChildrenCount( + transaction, w, filter); Set<Entry<String, Integer>> children = search.entrySet(); for (Entry<String, Integer> child : children) { Integer count = child.getValue(); String id = child.getKey(); - Wikitty wikitty = restore(transaction, id); + Wikitty wikitty = restore(securityToken, transaction, id); TreeNode node = WikittyServiceImpl.toBean(new TreeNodeImpl(wikitty)); result.put(node, count); @@ -793,12 +841,13 @@ } @Override - public Wikitty restoreVersion(String wikittyId, String version) { + public Wikitty restoreVersion(String securityToken, + String wikittyId, String version) { throw new UnsupportedOperationException("Not supported yet."); } @Override - public UpdateResponse syncEngin() { + public UpdateResponse syncEngin(String securityToken) { final WikittyTransaction transaction = new WikittyTransaction(); try { final int numberForCommit = 1000; Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java 2010-06-07 11:10:32 UTC (rev 102) @@ -162,201 +162,217 @@ } } - public void clear() { - ws.clear(); + @Override + public String login(String login, String password) { + return ws.login(login, password); } @Override - public UpdateResponse store(Wikitty wikitty) { - UpdateResponse updateResponse = ws.store(wikitty); + public void logout(String securityToken) { + ws.logout(securityToken); + } + + public void clear(String securityToken) { + ws.clear(securityToken); + } + + @Override + public UpdateResponse store(String securityToken, Wikitty wikitty) { + UpdateResponse updateResponse = ws.store(securityToken, wikitty); // notify listeners firePutWikitty(wikitty); return updateResponse; } @Override - public UpdateResponse store(Collection<Wikitty> wikitties) { - UpdateResponse updateResponse = ws.store(wikitties); + public UpdateResponse store(String securityToken, Collection<Wikitty> wikitties) { + UpdateResponse updateResponse = ws.store(securityToken, wikitties); // notify listeners firePutWikitty(wikitties.toArray(new Wikitty[wikitties.size()])); return updateResponse; } @Override - public UpdateResponse store(Collection<Wikitty> wikitties, + public UpdateResponse store(String securityToken, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) { - UpdateResponse updateResponse = ws.store(wikitties, disableAutoVersionIncrement); + UpdateResponse updateResponse = ws.store( + securityToken, wikitties, disableAutoVersionIncrement); // notify listeners firePutWikitty(wikitties.toArray(new Wikitty[wikitties.size()])); return updateResponse; } @Override - public UpdateResponse store(WikittyTransaction transaction, + public UpdateResponse store(String securityToken, WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) { - UpdateResponse updateResponse = ws.store(transaction, wikitties, - disableAutoVersionIncrement); + UpdateResponse updateResponse = ws.store(securityToken, transaction, + wikitties, disableAutoVersionIncrement); // notify listeners firePutWikitty(wikitties.toArray(new Wikitty[wikitties.size()])); return updateResponse; } @Override - public List<String> getAllExtensionIds() { + public List<String> getAllExtensionIds(String securityToken) { // no notification - return ws.getAllExtensionIds(); + return ws.getAllExtensionIds(securityToken); } @Override - public List<String> getAllExtensionsRequires(String extensionName) { + public List<String> getAllExtensionsRequires( + String securityToken, String extensionName) { // no notification - return ws.getAllExtensionsRequires(extensionName); + return ws.getAllExtensionsRequires(securityToken, extensionName); } @Override - public UpdateResponse storeExtension(WikittyExtension ext) { - UpdateResponse updateResponse = ws.storeExtension(ext); + public UpdateResponse storeExtension(String securityToken, WikittyExtension ext) { + UpdateResponse updateResponse = ws.storeExtension(securityToken, ext); // notify listeners firePutExtension(ext); return updateResponse; } @Override - public UpdateResponse storeExtension(Collection<WikittyExtension> exts) { - UpdateResponse updateResponse = ws.storeExtension(exts); + public UpdateResponse storeExtension( + String securityToken, Collection<WikittyExtension> exts) { + UpdateResponse updateResponse = ws.storeExtension(securityToken, exts); // notify listeners firePutExtension(exts.toArray(new WikittyExtension[exts.size()])); return updateResponse; } @Override - public UpdateResponse storeExtension(WikittyTransaction transaction, - Collection<WikittyExtension> exts) { - UpdateResponse updateResponse = ws.storeExtension(transaction, exts); + public UpdateResponse storeExtension(String securityToken, + WikittyTransaction transaction, Collection<WikittyExtension> exts) { + UpdateResponse updateResponse = ws.storeExtension( + securityToken, transaction, exts); // no notification called by #storeExtension(Collection<WikittyExtension>) return updateResponse; } @Override - public WikittyExtension restoreExtension(String id) { + public WikittyExtension restoreExtension(String securityToken, String id) { // no notification - return ws.restoreExtension(id); + return ws.restoreExtension(securityToken, id); } @Override - public WikittyExtension restoreExtension(WikittyTransaction transaction, - String id) { + public WikittyExtension restoreExtension(String securityToken, + WikittyTransaction transaction, String id) { // no notification - return ws.restoreExtension(transaction, id); + return ws.restoreExtension(securityToken, transaction, id); } @Override - public WikittyExtension restoreExtensionLastVersion(String name) { + public WikittyExtension restoreExtensionLastVersion( + String securityToken, String name) { // no notification - return ws.restoreExtensionLastVersion(name); + return ws.restoreExtensionLastVersion(securityToken, name); } @Override - public Wikitty restore(String id) { + public Wikitty restore(String securityToken, String id) { // no notification - return ws.restore(id); + return ws.restore(securityToken, id); } @Override - public List<Wikitty> restore(List<String> id) { + public List<Wikitty> restore(String securityToken, List<String> id) { // no notification - return ws.restore(id); + return ws.restore(securityToken, id); } @Override - public void delete(String id) { - ws.delete(id); + public void delete(String securityToken, String id) { + ws.delete(securityToken, id); // notify listeners fireRemoveWikitty(id); } @Override - public void delete(Collection<String> ids) { - ws.delete(ids); + public void delete(String securityToken, Collection<String> ids) { + ws.delete(securityToken, ids); // notify listeners fireRemoveWikitty(ids.toArray(new String[ids.size()])); } @Override - public PagedResult<Wikitty> findAllByCriteria(Criteria criteria) { + public PagedResult<Wikitty> findAllByCriteria(String securityToken, Criteria criteria) { // no notification - return ws.findAllByCriteria(criteria); + return ws.findAllByCriteria(securityToken, criteria); } @Override - public PagedResult<Wikitty> findAllByCriteria( + public PagedResult<Wikitty> findAllByCriteria(String securityToken, WikittyTransaction transaction, Criteria criteria) { // no notification - return ws.findAllByCriteria(transaction, criteria); + return ws.findAllByCriteria(securityToken, transaction, criteria); } @Override - public Wikitty findByCriteria(Criteria criteria) { + public Wikitty findByCriteria(String securityToken, Criteria criteria) { // no notification - return ws.findByCriteria(criteria); + return ws.findByCriteria(securityToken, criteria); } @Override - public void addLabel(String wikittyId, String label) { + public void addLabel(String securityToken, String wikittyId, String label) { // no notification // TODO EC20100607 fixme : need notification ? - ws.addLabel(wikittyId, label); + ws.addLabel(securityToken, wikittyId, label); } @Override - public PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, - int endIndex) { + public PagedResult<Wikitty> findAllByLabel(String securityToken, + String label, int firstIndex, int endIndex) { // no notification - return ws.findAllByLabel(label, firstIndex, endIndex); + return ws.findAllByLabel(securityToken, label, firstIndex, endIndex); } @Override - public Wikitty findByLabel(String label) { + public Wikitty findByLabel(String securityToken, String label) { // no notification - return ws.findByLabel(label); + return ws.findByLabel(securityToken, label); } @Override - public Set<String> findAllAppliedLabels(String wikittyId) { + public Set<String> findAllAppliedLabels(String securityToken, String wikittyId) { // no notification - return ws.findAllAppliedLabels(wikittyId); + return ws.findAllAppliedLabels(securityToken, wikittyId); } @Override - public Tree restoreTree(String wikittyId) { + public Tree restoreTree(String securityToken, String wikittyId) { // no notification - return ws.restoreTree(wikittyId); + return ws.restoreTree(securityToken, wikittyId); } @Override - public Entry<TreeNode, Integer> restoreNode(String wikittyId, + public Entry<TreeNode, Integer> restoreNode(String securityToken, String wikittyId, Criteria filter) { // no notification - return ws.restoreNode(wikittyId, filter); + return ws.restoreNode(securityToken, wikittyId, filter); } @Override - public Map<TreeNode, Integer> restoreChildren(String wikittyId, - Criteria filter) { + public Map<TreeNode, Integer> restoreChildren(String securityToken, + String wikittyId, Criteria filter) { // no notification - return ws.restoreChildren(wikittyId, filter); + return ws.restoreChildren(securityToken, wikittyId, filter); } @Override - public Wikitty restoreVersion(String wikittyId, String version) { + public Wikitty restoreVersion( + String securityToken, String wikittyId, String version) { // no notification - return ws.restoreVersion(wikittyId, version); + return ws.restoreVersion(securityToken, wikittyId, version); } @Override - public UpdateResponse syncEngin() { + public UpdateResponse syncEngin(String securityToken) { // no notification - return ws.syncEngin(); + return ws.syncEngin(securityToken); } /** Added: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java (rev 0) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java 2010-06-07 11:10:32 UTC (rev 102) @@ -0,0 +1,223 @@ +/* *##% + * Copyright (c) 2010 poussin. All rights reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + *##%*/ + +package org.nuiton.wikitty; + + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public class WikittyServiceSecurity implements WikittyService { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(WikittyServiceSecurity.class); + + protected WikittyService ws; + + public WikittyServiceSecurity(WikittyService ws) { + this.ws = ws; + } + + @Override + public void addWikittyServiceListener(WikittyServiceListener listener, ServiceListenerType type) { + ws.addWikittyServiceListener(listener, type); + } + + @Override + public void removeWikittyServiceListener(WikittyServiceListener listener, ServiceListenerType type) { + ws.addWikittyServiceListener(listener, type); + } + + @Override + public String login(String login, String password) { + String token = WikittyUtil.genSecurityToken(); + Wikitty wToken = new Wikitty(token); + // force add extension to wikitty + SecurityToken securityToken = new SecurityTokenImpl(wToken); + // on passe null comme toke, car on est dans le service de secu + // normalement il ne devrait pas y en avoir d'autre + ws.store(null, wToken); + return token; + } + + @Override + public void logout(String securityToken) { + // on passe null comme toke, car on est dans le service de secu + // normalement il ne devrait pas y en avoir d'autre + ws.delete(null, securityToken); + } + + @Override + public void clear(String securityToken) { + throw new UnsupportedOperationException("Not supported yet."); + // seul les AppAdmin on le droit a cette method + } + + @Override + public UpdateResponse store(String securityToken, Wikitty wikitty) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public UpdateResponse store(String securityToken, Collection<Wikitty> wikitties) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public UpdateResponse store(String securityToken, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public UpdateResponse store(String securityToken, WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public List<String> getAllExtensionIds(String securityToken) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public List<String> getAllExtensionsRequires(String securityToken, String extensionName) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public UpdateResponse storeExtension(String securityToken, WikittyExtension ext) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public UpdateResponse storeExtension(String securityToken, Collection<WikittyExtension> exts) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public UpdateResponse storeExtension(String securityToken, WikittyTransaction transaction, Collection<WikittyExtension> exts) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public WikittyExtension restoreExtension(String securityToken, String id) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public WikittyExtension restoreExtension(String securityToken, WikittyTransaction transaction, String id) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public WikittyExtension restoreExtensionLastVersion(String securityToken, String name) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Wikitty restore(String securityToken, String id) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public List<Wikitty> restore(String securityToken, List<String> id) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void delete(String securityToken, String id) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void delete(String securityToken, Collection<String> ids) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public PagedResult<Wikitty> findAllByCriteria(String securityToken, Criteria criteria) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public PagedResult<Wikitty> findAllByCriteria(String securityToken, WikittyTransaction transaction, Criteria criteria) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Wikitty findByCriteria(String securityToken, Criteria criteria) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void addLabel(String securityToken, String wikittyId, String label) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public PagedResult<Wikitty> findAllByLabel(String securityToken, String label, int firstIndex, int endIndex) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Wikitty findByLabel(String securityToken, String label) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Set<String> findAllAppliedLabels(String securityToken, String wikittyId) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Tree restoreTree(String securityToken, String wikittyId) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Entry<TreeNode, Integer> restoreNode(String securityToken, String wikittyId, Criteria filter) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Map<TreeNode, Integer> restoreChildren(String securityToken, String wikittyId, Criteria filter) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Wikitty restoreVersion(String securityToken, String wikittyId, String version) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public UpdateResponse syncEngin(String securityToken) { + throw new UnsupportedOperationException("Not supported yet."); + } + +} Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2010-06-07 11:10:32 UTC (rev 102) @@ -622,7 +622,7 @@ * @param w wikitty object to use internaly for in new instance * @return new instance */ - static public <E extends BusinessEntity> E newInstance( + static public <E extends BusinessEntity> E newInstance(String securityToken, WikittyService wikittyService, Class<E> clazz, Wikitty w) { try { Class<?> clazzInstanciable = clazz; @@ -655,7 +655,7 @@ result = (E) cons.newInstance(parms); BusinessEntityWikitty bean = (BusinessEntityWikitty) result; - checkExtensionVersion(wikittyService, w, bean); + checkExtensionVersion(securityToken, wikittyService, w, bean); bean.setWikitty(w); } catch (NoSuchMethodException noerror) { @@ -683,7 +683,8 @@ * @param entity * @return */ - static public Wikitty checkExtensionVersion(WikittyService wikittyService, + static public Wikitty checkExtensionVersion( + String securityToken, WikittyService wikittyService, Wikitty wikitty, BusinessEntityWikitty entity) { Wikitty result = wikitty; @@ -700,7 +701,7 @@ String oldVersion = oldExt.getVersion(); if (WikittyUtil.versionGreaterThan(newVersion, oldVersion)) { - wikittyService.storeExtension(Arrays.asList(ext)); + wikittyService.storeExtension(securityToken, Arrays.asList(ext)); upgradeData = true; } } @@ -708,7 +709,7 @@ if (upgradeData) { String wikittyId = wikitty.getId(); - result = wikittyService.restore(wikittyId); + result = wikittyService.restore(securityToken, wikittyId); } return result; @@ -881,6 +882,18 @@ } } + /** + * SecurityToken is used like wikitty id and must begin with UUID_ + * + * @return SecurityToken that can be used like wikitty id + */ + static public String genSecurityToken() { + String result = "_" + Math.abs(Math.random()); + result.replace(".", ""); // on supprime le '.' dans le nombre aleatoire + result = genUID() + result; + return result; + } + // private static BASE64Encoder enc = new BASE64Encoder(); public static String genUID() { return UUID.randomUUID().toString(); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ExportTask.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ExportTask.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ExportTask.java 2010-06-07 11:10:32 UTC (rev 102) @@ -22,9 +22,12 @@ protected FORMAT format; protected Criteria criteria; protected Writer writer; + protected String securityToken; - public ExportTask(WikittyService ws, FORMAT format, Criteria criteria, Writer writer) { + public ExportTask(String securityToken, + WikittyService ws, FORMAT format, Criteria criteria, Writer writer) { super(); + this.securityToken = securityToken; this.ws = ws; this.transaction = new WikittyTransaction(); this.format = format; @@ -41,14 +44,15 @@ // used for CSV export criteria.addFacetField(Element.ELT_EXTENSION); - PagedResult<Wikitty> pageResult = ws.findAllByCriteria(transaction, criteria); + PagedResult<Wikitty> pageResult = ws.findAllByCriteria( + securityToken, transaction, criteria); long time = 0; if (log.isInfoEnabled()) { time = System.currentTimeMillis(); log.info("Export started"); } ImportExportMethod exporter = format.ieporter(); - exporter.exportWriter(writer, ws, pageResult); + exporter.exportWriter(securityToken, writer, ws, pageResult); if (log.isInfoEnabled()) { time = System.currentTimeMillis() - time; log.info("Export in (ms)" + time); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java 2010-06-07 11:10:32 UTC (rev 102) @@ -63,7 +63,8 @@ protected Pattern queryPattern = Pattern.compile("^((\\w+)\\.(\\w+))=(\"(.+)\"|([^\"]+))$"); @Override - public void importReader(Reader reader, WikittyService ws, WikittyBatchUpdate batchUpdate) throws Exception { + public void importReader(String securityToken, Reader reader, + WikittyService ws, WikittyBatchUpdate batchUpdate) throws Exception { // get index of wikitty.id field int wikittyIdIndex = -1; @@ -113,10 +114,10 @@ if (StringUtils.isNotEmpty(value)) { // extension must exists on wikitty to set a field value - addMissingExtension(ws, currentWikitty, extName); + addMissingExtension(securityToken, ws, currentWikitty, extName); // convert link values (if necessary) - value = convertLinkValues(ws, value); + value = convertLinkValues(securityToken, ws, value); // add value to correct field FieldType fieldType = currentWikitty.getFieldType(extName + "." + fieldName); @@ -144,17 +145,18 @@ /** * Recusively add missing extension of not exist and required extension too. */ - protected void addMissingExtension(WikittyService ws, Wikitty currentWikitty, String extName) { + protected void addMissingExtension(String securityToken, WikittyService ws, Wikitty currentWikitty, String extName) { // extension must exists on wikitty to set a field value if (!currentWikitty.hasExtension(extName)) { - WikittyExtension extension = ws.restoreExtensionLastVersion(extName); + WikittyExtension extension = ws.restoreExtensionLastVersion( + securityToken, extName); String requires = extension.getRequires(); if (StringUtils.isNotEmpty(requires)) { // add required extensions BEFORE current for (String require : requires.split(",")) { String localRequire = require.trim(); - addMissingExtension(ws, currentWikitty, localRequire); + addMissingExtension(securityToken, ws, currentWikitty, localRequire); } } @@ -168,7 +170,8 @@ * @param value * @return */ - protected String convertLinkValues(WikittyService ws, String value) { + protected String convertLinkValues( + String securityToken, WikittyService ws, String value) { String originalValue = value; String resultValue = ""; @@ -189,7 +192,7 @@ fValue = m.group(6); } Criteria criteria = Search.query().eq(fqField, fValue).criteria(); - Wikitty wikitty = ws.findByCriteria(criteria); + Wikitty wikitty = ws.findByCriteria(securityToken, criteria); if (wikitty == null) { correctQueries = false; } @@ -219,7 +222,8 @@ } @Override - public void exportWriter(Writer writer, WikittyService ws, PagedResult<Wikitty> pagedResult) throws Exception { + public void exportWriter(String securityToken, Writer writer, + WikittyService ws, PagedResult<Wikitty> pagedResult) throws Exception { CSVWriter csvWriter = new CSVWriter(writer); @@ -229,7 +233,8 @@ for (FacetTopic topic : pagedResult.getTopic(Element.ELT_EXTENSION)) { String extName = topic.getTopicName(); - WikittyExtension extension = ws.restoreExtensionLastVersion(extName); + WikittyExtension extension = ws.restoreExtensionLastVersion( + securityToken, extName); String ext = WikittyExtension.computeName(extName); for (String fieldName : extension.getFieldNames()) { extensionHeader.add(ext + "." + fieldName); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportMethod.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportMethod.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportMethod.java 2010-06-07 11:10:32 UTC (rev 102) @@ -44,7 +44,8 @@ * * @throws Exception */ - public void importReader(Reader reader, WikittyService ws, WikittyBatchUpdate batchUpdate) throws Exception; + public void importReader(String securityToken, Reader reader, + WikittyService ws, WikittyBatchUpdate batchUpdate) throws Exception; /** * Export data to writer. @@ -55,5 +56,6 @@ * * @throws Exception */ - public void exportWriter(Writer writer, WikittyService ws, PagedResult<Wikitty> pagedResult) throws Exception; + public void exportWriter(String securityToken, Writer writer, + WikittyService ws, PagedResult<Wikitty> pagedResult) throws Exception; } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportXML.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportXML.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportXML.java 2010-06-07 11:10:32 UTC (rev 102) @@ -54,7 +54,8 @@ static private Log log = LogFactory.getLog(ImportExportXML.class); @Override - public void importReader(Reader reader, WikittyService ws, WikittyBatchUpdate batchUpdate) throws Exception { + public void importReader(String securityToken, Reader reader, + WikittyService ws, WikittyBatchUpdate batchUpdate) throws Exception { XmlPullParserFactory factory = XmlPullParserFactory.newInstance( System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null); factory.setNamespaceAware(true); @@ -130,7 +131,8 @@ } @Override - public void exportWriter(Writer result, WikittyService ws, PagedResult<Wikitty> pagedResult) throws Exception { + public void exportWriter(String securityToken, Writer result, + WikittyService ws, PagedResult<Wikitty> pagedResult) throws Exception { // keep extension already done Set<String> extDone = new HashSet<String>(); result.write("<wikengo>\n"); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportTask.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportTask.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportTask.java 2010-06-07 11:10:32 UTC (rev 102) @@ -18,9 +18,12 @@ protected FORMAT format; protected Reader reader; protected ImportExportMethod importerExporter; + protected String securityToken; - public ImportTask(WikittyService ws, FORMAT format, Reader reader) { + public ImportTask(String securityToken, + WikittyService ws, FORMAT format, Reader reader) { super(); + this.securityToken = securityToken; this.ws = ws; this.format = format; this.reader = reader; @@ -31,7 +34,8 @@ public void run() { try { transaction.begin(); - WikittyBatchUpdate batchUpdate = new WikittyBatchUpdate(ws, transaction); + WikittyBatchUpdate batchUpdate = new WikittyBatchUpdate( + securityToken, ws, transaction); long time = 0; if (log.isInfoEnabled()) { @@ -39,7 +43,7 @@ log.info("Import in (ms)" + time); } ImportExportMethod importer = format.ieporter(); - importer.importReader(reader, ws, batchUpdate); + importer.importReader(securityToken, reader, ws, batchUpdate); if (log.isInfoEnabled()) { time = System.currentTimeMillis() - time; Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/WikittyBatchUpdate.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/WikittyBatchUpdate.java 2010-06-07 10:44:00 UTC (rev 101) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/WikittyBatchUpdate.java 2010-06-07 11:10:32 UTC (rev 102) @@ -22,9 +22,12 @@ protected List<Wikitty> wikitties = new LinkedList<Wikitty>(); protected WikittyService ws; protected WikittyTransaction transaction; + protected String securityToken; - public WikittyBatchUpdate(WikittyService ws, WikittyTransaction transaction) { + public WikittyBatchUpdate(String securityToken, + WikittyService ws, WikittyTransaction transaction) { super(); + this.securityToken = securityToken; this.ws = ws; this.transaction = transaction; } @@ -48,14 +51,14 @@ public WikittyExtension getExtension(String id) { WikittyExtension result = exts.get(id); if (result == null) { - result = ws.restoreExtension(transaction, id); + result = ws.restoreExtension(securityToken, transaction, id); } return result; } public void flush() { - ws.storeExtension(transaction, exts.values()); - ws.store(transaction, wikitties, true); + ws.storeExtension(securityToken, transaction, exts.values()); + ws.store(securityToken, transaction, wikitties, true); exts.clear(); wikitties.clear(); currentAdded = 0; Added: trunk/wikitty-api/src/main/uml/wikitty-api/wikitty-security.zargo =================================================================== (Binary files differ) Property changes on: trunk/wikitty-api/src/main/uml/wikitty-api/wikitty-security.zargo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream
participants (1)
-
bpoussin@users.nuiton.org