Support for Java 11

This commit is contained in:
Paulo Gustavo Veiga 2020-11-06 21:35:54 -08:00
parent 6872cda952
commit 9b738eaaf7
45 changed files with 240 additions and 232 deletions

View File

@ -77,7 +77,7 @@
<plugin> <plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId> <groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId> <artifactId>maven-jaxb2-plugin</artifactId>
<version>0.8.1</version> <version>0.14.0</version>
</plugin> </plugin>
<plugin> <plugin>
<groupId>net.alchim31.maven</groupId> <groupId>net.alchim31.maven</groupId>
@ -117,10 +117,10 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version> <version>3.8.0</version>
<configuration> <configuration>
<source>1.8</source> <source>11</source>
<target>1.8</target> <target>11</target>
<encoding>UTF-8</encoding> <encoding>UTF-8</encoding>
</configuration> </configuration>
</plugin> </plugin>

View File

@ -28,8 +28,8 @@
</repositories> </repositories>
<properties> <properties>
<org.springframework.version>3.2.18.RELEASE</org.springframework.version> <org.springframework.version>4.3.29.RELEASE</org.springframework.version>
<org.springframework.addons>3.2.10.RELEASE</org.springframework.addons> <org.springframework.addons>4.2.9.RELEASE</org.springframework.addons>
</properties> </properties>
<dependencies> <dependencies>
@ -56,7 +56,7 @@
<dependency> <dependency>
<groupId>org.apache.velocity</groupId> <groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId> <artifactId>velocity</artifactId>
<version>1.5</version> <version>1.7</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
@ -122,7 +122,7 @@
<dependency> <dependency>
<groupId>org.apache.xmlgraphics</groupId> <groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId> <artifactId>fop</artifactId>
<version>2.3</version> <version>2.4</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
@ -228,7 +228,7 @@
<dependency> <dependency>
<groupId>javax</groupId> <groupId>javax</groupId>
<artifactId>javaee-api</artifactId> <artifactId>javaee-api</artifactId>
<version>6.0</version> <version>8.0.1</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
@ -268,15 +268,9 @@
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.codehaus.jackson</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core-asl</artifactId> <artifactId>jackson-databind</artifactId>
<version>1.9.4</version> <version>2.11.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.4</version>
<scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>
@ -290,6 +284,26 @@
<version>2.10.0</version> <version>2.10.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
</dependency>
<dependency> <dependency>
<!-- jsoup HTML parser library @ http://jsoup.org/ --> <!-- jsoup HTML parser library @ http://jsoup.org/ -->
<groupId>org.jsoup</groupId> <groupId>org.jsoup</groupId>
@ -311,6 +325,11 @@
<artifactId>jstl</artifactId> <artifactId>jstl</artifactId>
<version>1.2</version> <version>1.2</version>
</dependency> </dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.httpcomponents</groupId> <groupId>org.apache.httpcomponents</groupId>
<artifactId>fluent-hc</artifactId> <artifactId>fluent-hc</artifactId>
@ -567,11 +586,9 @@
<plugin> <plugin>
<groupId>org.eclipse.jetty</groupId> <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId> <artifactId>jetty-maven-plugin</artifactId>
<version>9.4.12.v20180830</version> <version>9.4.34.v20201102</version>
<configuration> <configuration>
<baseAppFirst>false</baseAppFirst>
<stopKey>foo</stopKey> <stopKey>foo</stopKey>
<nonBlocking>true</nonBlocking>
<stopPort>9999</stopPort> <stopPort>9999</stopPort>
<war>${project.build.directory}/wisemapping.war</war> <war>${project.build.directory}/wisemapping.war</war>
<reload>automatic</reload> <reload>automatic</reload>
@ -595,14 +612,15 @@
</configuration> </configuration>
<executions> <executions>
<execution> <execution>
<id>start-jetty</id> <id>run-forked</id>
<phase>pre-integration-test</phase> <phase>pre-integration-test</phase>
<goals> <goals>
<goal>run</goal> <goal>run-forked</goal>
</goals> </goals>
<configuration> <configuration>
<scanIntervalSeconds>0</scanIntervalSeconds> <scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon> <waitForChild>false</waitForChild>
<jvmArgs>-Ddatabase.base.url=${project.build.directory}</jvmArgs>
</configuration> </configuration>
</execution> </execution>
<execution> <execution>

View File

@ -24,20 +24,20 @@ public class LabelManagerImpl extends HibernateDaoSupport
@NotNull @NotNull
@Override @Override
public List<Label> getAllLabels(@NotNull final User user) { public List<Label> getAllLabels(@NotNull final User user) {
return getHibernateTemplate().find("from com.wisemapping.model.Label wisemapping where creator_id=?", user.getId()); return (List<Label>) getHibernateTemplate().find("from com.wisemapping.model.Label wisemapping where creator_id=?", user.getId());
} }
@Nullable @Nullable
@Override @Override
public Label getLabelById(int id, @NotNull final User user) { public Label getLabelById(int id, @NotNull final User user) {
List<Label> labels = getHibernateTemplate().find("from com.wisemapping.model.Label wisemapping where id=? and creator=?", new Object[]{id, user}); List<Label> labels = (List<Label>) getHibernateTemplate().find("from com.wisemapping.model.Label wisemapping where id=? and creator=?", new Object[]{id, user});
return getFirst(labels); return getFirst(labels);
} }
@Nullable @Nullable
@Override @Override
public Label getLabelByTitle(@NotNull String title, @NotNull final User user) { public Label getLabelByTitle(@NotNull String title, @NotNull final User user) {
final List<Label> labels = getHibernateTemplate().find("from com.wisemapping.model.Label wisemapping where title=? and creator=?", new Object[]{title, user}); final List<Label> labels = (List<Label>) getHibernateTemplate().find("from com.wisemapping.model.Label wisemapping where title=? and creator=?", new Object[]{title, user});
return getFirst(labels); return getFirst(labels);
} }

View File

@ -40,7 +40,7 @@ public class MindmapManagerImpl
@Override @Override
public Collaborator findCollaborator(@NotNull final String email) { public Collaborator findCollaborator(@NotNull final String email) {
final Collaborator collaborator; final Collaborator collaborator;
final List<Collaborator> collaborators = getHibernateTemplate().find("from com.wisemapping.model.Collaborator collaborator where email=?", email); final List<Collaborator> collaborators = (List<Collaborator>) getHibernateTemplate().find("from com.wisemapping.model.Collaborator collaborator where email=?", email);
if (collaborators != null && !collaborators.isEmpty()) { if (collaborators != null && !collaborators.isEmpty()) {
assert collaborators.size() == 1 : "More than one user with the same email!"; assert collaborators.size() == 1 : "More than one user with the same email!";
collaborator = collaborators.get(0); collaborator = collaborators.get(0);
@ -154,19 +154,19 @@ public class MindmapManagerImpl
@Override @Override
public List<Collaboration> findCollaboration(final long collaboratorId) { public List<Collaboration> findCollaboration(final long collaboratorId) {
return getHibernateTemplate().find("from com.wisemapping.model.Collaboration collaboration where colaborator_id=?", collaboratorId); return (List<Collaboration>) getHibernateTemplate().find("from com.wisemapping.model.Collaboration collaboration where colaborator_id=?", collaboratorId);
} }
@Override @Override
public List<Collaboration> findCollaboration(final CollaborationRole collaborationRole) { public List<Collaboration> findCollaboration(final CollaborationRole collaborationRole) {
return getHibernateTemplate().find("from com.wisemapping.model.Collaboration collaboration where roleId=?", collaborationRole.ordinal()); return (List<Collaboration>) getHibernateTemplate().find("from com.wisemapping.model.Collaboration collaboration where roleId=?", collaborationRole.ordinal());
} }
@Override @Override
public Collaboration findCollaboration(final int mindmapId, final User user) { public Collaboration findCollaboration(final int mindmapId, final User user) {
final Collaboration result; final Collaboration result;
final List<Collaboration> mindMaps = getHibernateTemplate().find("from com.wisemapping.model.Collaboration collaboration where mindMap.id=? and colaborator_id=?", new Object[]{mindmapId, user.getId()}); final List<Collaboration> mindMaps = (List<Collaboration>) getHibernateTemplate().find("from com.wisemapping.model.Collaboration collaboration where mindMap.id=? and colaborator_id=?", new Object[]{mindmapId, user.getId()});
if (mindMaps != null && !mindMaps.isEmpty()) { if (mindMaps != null && !mindMaps.isEmpty()) {
result = mindMaps.get(0); result = mindMaps.get(0);
} else { } else {
@ -194,7 +194,7 @@ public class MindmapManagerImpl
@Override @Override
public List<Mindmap> getAllMindmaps() { public List<Mindmap> getAllMindmaps() {
return getHibernateTemplate().find("from com.wisemapping.model.Mindmap wisemapping"); return (List<Mindmap>) getHibernateTemplate().find("from com.wisemapping.model.Mindmap wisemapping");
} }
@Override @Override
@ -206,7 +206,7 @@ public class MindmapManagerImpl
@Override @Override
public Mindmap getMindmapByTitle(final String title, final User user) { public Mindmap getMindmapByTitle(final String title, final User user) {
final Mindmap result; final Mindmap result;
List<Mindmap> mindMaps = getHibernateTemplate().find("from com.wisemapping.model.Mindmap wisemapping where title=? and creator=?", new Object[]{title, user}); List<Mindmap> mindMaps = (List<Mindmap>) getHibernateTemplate().find("from com.wisemapping.model.Mindmap wisemapping where title=? and creator=?", new Object[]{title, user});
if (mindMaps != null && !mindMaps.isEmpty()) { if (mindMaps != null && !mindMaps.isEmpty()) {
result = mindMaps.get(0); result = mindMaps.get(0);
} else { } else {

View File

@ -43,14 +43,14 @@ public class UserManagerImpl
} }
public List<User> getAllUsers() { public List<User> getAllUsers() {
return getHibernateTemplate().find("from com.wisemapping.model.User user"); return (List<User>) getHibernateTemplate().find("from com.wisemapping.model.User user");
} }
@Override @Override
public User getUserBy(@NotNull final String email) { public User getUserBy(@NotNull final String email) {
User user = null; User user = null;
final List<User> users = getHibernateTemplate().find("from com.wisemapping.model.User colaborator where email=?", email); final List<User> users = (List<User>) getHibernateTemplate().find("from com.wisemapping.model.User colaborator where email=?", email);
if (users != null && !users.isEmpty()) { if (users != null && !users.isEmpty()) {
assert users.size() == 1 : "More than one user with the same email!"; assert users.size() == 1 : "More than one user with the same email!";
user = users.get(0); user = users.get(0);

View File

@ -30,13 +30,13 @@ import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.ImageTranscoder; import org.apache.batik.transcoder.image.ImageTranscoder;
import org.apache.batik.transcoder.image.JPEGTranscoder; import org.apache.batik.transcoder.image.JPEGTranscoder;
import org.apache.batik.transcoder.image.PNGTranscoder; import org.apache.batik.transcoder.image.PNGTranscoder;
import org.apache.commons.io.IOUtils;
import org.apache.fop.svg.PDFTranscoder; import org.apache.fop.svg.PDFTranscoder;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.w3c.dom.*; import org.w3c.dom.*;
import org.xml.sax.InputSource; import org.xml.sax.InputSource;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import sun.misc.BASE64Encoder;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilder;
@ -51,6 +51,7 @@ import javax.xml.xpath.*;
import java.awt.geom.AffineTransform; import java.awt.geom.AffineTransform;
import java.io.*; import java.io.*;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class ExporterFactory { public class ExporterFactory {
@ -266,8 +267,8 @@ public class ExporterFactory {
final File iconFile = iconFile(imgUrl); final File iconFile = iconFile(imgUrl);
final ByteArrayOutputStream bos = new ByteArrayOutputStream(); final ByteArrayOutputStream bos = new ByteArrayOutputStream();
fis = new FileInputStream(iconFile); fis = new FileInputStream(iconFile);
BASE64Encoder encoder = new BASE64Encoder(); Base64.Encoder enc = Base64.getEncoder();
encoder.encode(fis, bos); bos.write(enc.encode(IOUtils.toByteArray(fis)));
elem.setAttribute("xlink:href", "data:image/png;base64," + bos.toString("8859_1")); elem.setAttribute("xlink:href", "data:image/png;base64," + bos.toString("8859_1"));
elem.appendChild(document.createTextNode(" ")); elem.appendChild(document.createTextNode(" "));

View File

@ -26,13 +26,11 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import com.wisemapping.exceptions.UnsupportedBrowserException;
import java.util.Set; import java.util.Set;
public class BrowserSupportInterceptor extends HandlerInterceptorAdapter { public class BrowserSupportInterceptor extends HandlerInterceptorAdapter {
private Set<String> exclude; private Set<String> exclude;
public static final String USER_AGENT = "wisemapping.user_agent"; private static final String USER_AGENT = "wisemapping.user_agent";
public boolean preHandle(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, Object object) throws Exception { public boolean preHandle(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, Object object) throws Exception {
@ -54,15 +52,16 @@ public class BrowserSupportInterceptor extends HandlerInterceptorAdapter {
} }
} }
// It's a supported browser ?. return true;
if (!userAgent.isBrowserSupported()) { // // It's a supported browser ?.
throw new UnsupportedBrowserException(); // if (!userAgent.isBrowserSupported()) {
} // throw new UnsupportedBrowserException();
// }
// Is a Explorer 9 or less without Google Chrome Frame ?. //
if (userAgent.needsGCF()) { // // Is a Explorer 9 or less without Google Chrome Frame ?.
throw new GoogleChromeFrameRequiredException(); // if (userAgent.needsGCF()) {
} // throw new GoogleChromeFrameRequiredException();
// }
} }

View File

@ -135,7 +135,7 @@ public class FreemindImporter
result.setTitle(mapName); result.setTitle(mapName);
result.setDescription(description); result.setDescription(description);
} catch (JAXBException | IOException | TransformerException e) { } catch (JAXBException | TransformerException e) {
throw new ImporterException(e); throw new ImporterException(e);
} }
return result; return result;

View File

@ -1,20 +1,20 @@
/* /*
* Copyright [2011] [wisemapping] * Copyright [2011] [wisemapping]
* *
* Licensed under WiseMapping Public License, Version 1.0 (the "License"). * Licensed under WiseMapping Public License, Version 1.0 (the "License").
* It is basically the Apache License, Version 2.0 (the "License") plus the * It is basically the Apache License, Version 2.0 (the "License") plus the
* "powered by wisemapping" text requirement on every single page; * "powered by wisemapping" text requirement on every single page;
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the license at * You may obtain a copy of the license at
* *
* http://www.wisemapping.org/license * http://www.wisemapping.org/license
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.wisemapping.rest; package com.wisemapping.rest;

View File

@ -1,36 +1,39 @@
/* /*
* Copyright [2015] [wisemapping] * Copyright [2015] [wisemapping]
* *
* Licensed under WiseMapping Public License, Version 1.0 (the "License"). * Licensed under WiseMapping Public License, Version 1.0 (the "License").
* It is basically the Apache License, Version 2.0 (the "License") plus the * It is basically the Apache License, Version 2.0 (the "License") plus the
* "powered by wisemapping" text requirement on every single page; * "powered by wisemapping" text requirement on every single page;
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the license at * You may obtain a copy of the license at
* *
* http://www.wisemapping.org/license * http://www.wisemapping.org/license
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.wisemapping.rest; package com.wisemapping.rest;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpInputMessage; import org.springframework.http.HttpInputMessage;
import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter; import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
public class DebugMappingJacksonHttpMessageConverter extends MappingJacksonHttpMessageConverter { public class DebugMappingJacksonHttpMessageConverter extends MappingJackson2HttpMessageConverter {
@Override @Override
protected Object readInternal(Class<?> clazz, HttpInputMessage inputMessage) throws IOException, JsonHttpMessageNotReadableException { protected Object readInternal(Class<?> clazz, HttpInputMessage inputMessage) throws JsonHttpMessageNotReadableException {
try { try {
final byte[] bytes = IOUtils.toByteArray(inputMessage.getBody()); final byte[] bytes = IOUtils.toByteArray(inputMessage.getBody());
final ByteArrayInputStream bais = new ByteArrayInputStream(bytes); final ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
@ -38,9 +41,7 @@ public class DebugMappingJacksonHttpMessageConverter extends MappingJacksonHttpM
return super.readInternal(clazz, wrap); return super.readInternal(clazz, wrap);
} catch (org.springframework.http.converter.HttpMessageNotReadableException e) { } catch (HttpMessageNotReadableException | IOException e) {
throw new JsonHttpMessageNotReadableException("Request Body could not be read", e);
} catch (IOException e) {
throw new JsonHttpMessageNotReadableException("Request Body could not be read", e); throw new JsonHttpMessageNotReadableException("Request Body could not be read", e);
} }
} }
@ -57,7 +58,7 @@ class WrapHttpInputMessage implements HttpInputMessage {
} }
@Override @Override
public InputStream getBody() throws IOException { public InputStream getBody() {
return body; return body;
} }

View File

@ -85,9 +85,10 @@ import java.util.Set;
@Api(value = "mindmap", description = "User Mindmap Objects.") @Api(value = "mindmap", description = "User Mindmap Objects.")
@Controller @Controller
public class MindmapController extends BaseController { public class MindmapController extends BaseController {
final Logger logger = Logger.getLogger("com.wisemapping"); private final static Logger logger = Logger.getLogger("com.wisemapping");
private static final String LATEST_HISTORY_REVISION = "latest";
public static final String LATEST_HISTORY_REVISION = "latest";
@Qualifier("mindmapService") @Qualifier("mindmapService")
@Autowired @Autowired
private MindmapService mindmapService; private MindmapService mindmapService;

View File

@ -19,10 +19,9 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.wisemapping.model.Collaboration; import com.wisemapping.model.Collaboration;
import com.wisemapping.model.CollaborationRole; import com.wisemapping.model.CollaborationRole;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;

View File

@ -19,7 +19,7 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import org.codehaus.jackson.annotate.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;

View File

@ -18,19 +18,16 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.wisemapping.model.Collaborator; import com.wisemapping.model.Collaborator;
import com.wisemapping.model.User;
import com.wisemapping.util.TimeUtils; import com.wisemapping.util.TimeUtils;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date;
@XmlRootElement(name = "collaborator") @XmlRootElement(name = "collaborator")
@XmlAccessorType(XmlAccessType.PROPERTY) @XmlAccessorType(XmlAccessType.PROPERTY)

View File

@ -18,10 +18,10 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.wisemapping.exceptions.Severity; import com.wisemapping.exceptions.Severity;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.springframework.context.MessageSource; import org.springframework.context.MessageSource;

View File

@ -1,17 +1,18 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.wisemapping.model.Label; import com.wisemapping.model.Label;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import static org.codehaus.jackson.annotate.JsonAutoDetect.Visibility.NONE;
import static org.codehaus.jackson.annotate.JsonAutoDetect.Visibility.PUBLIC_ONLY; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
@XmlRootElement(name = "label") @XmlRootElement(name = "label")
@XmlAccessorType(XmlAccessType.PROPERTY) @XmlAccessorType(XmlAccessType.PROPERTY)

View File

@ -1,7 +1,7 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.wisemapping.model.Label; import com.wisemapping.model.Label;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;

View File

@ -19,10 +19,10 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.wisemapping.model.Collaborator; import com.wisemapping.model.Collaborator;
import com.wisemapping.service.LockInfo; import com.wisemapping.service.LockInfo;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;

View File

@ -19,7 +19,7 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import org.codehaus.jackson.annotate.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;

View File

@ -19,6 +19,9 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.wisemapping.exceptions.WiseMappingException; import com.wisemapping.exceptions.WiseMappingException;
import com.wisemapping.model.CollaborationProperties; import com.wisemapping.model.CollaborationProperties;
import com.wisemapping.model.CollaborationRole; import com.wisemapping.model.CollaborationRole;
@ -26,9 +29,6 @@ import com.wisemapping.model.Collaborator;
import com.wisemapping.model.Mindmap; import com.wisemapping.model.Mindmap;
import com.wisemapping.model.User; import com.wisemapping.model.User;
import com.wisemapping.util.TimeUtils; import com.wisemapping.util.TimeUtils;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;

View File

@ -19,10 +19,10 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.wisemapping.model.MindMapHistory; import com.wisemapping.model.MindMapHistory;
import com.wisemapping.model.User; import com.wisemapping.model.User;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;

View File

@ -1,4 +1,4 @@
/* /**
* Copyright [2015] [wisemapping] * Copyright [2015] [wisemapping]
* *
* Licensed under WiseMapping Public License, Version 1.0 (the "License"). * Licensed under WiseMapping Public License, Version 1.0 (the "License").
@ -19,7 +19,7 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import org.codehaus.jackson.annotate.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;

View File

@ -19,6 +19,9 @@
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.wisemapping.model.Collaboration; import com.wisemapping.model.Collaboration;
import com.wisemapping.model.Collaborator; import com.wisemapping.model.Collaborator;
import com.wisemapping.model.Label; import com.wisemapping.model.Label;
@ -26,9 +29,6 @@ import com.wisemapping.model.Mindmap;
import com.wisemapping.model.User; import com.wisemapping.model.User;
import com.wisemapping.security.Utils; import com.wisemapping.security.Utils;
import com.wisemapping.util.TimeUtils; import com.wisemapping.util.TimeUtils;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -36,7 +36,6 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import java.util.Calendar; import java.util.Calendar;
import java.util.HashSet;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.Set; import java.util.Set;

View File

@ -1,27 +1,27 @@
/* /*
* Copyright [2015] [wisemapping] * Copyright [2015] [wisemapping]
* *
* Licensed under WiseMapping Public License, Version 1.0 (the "License"). * Licensed under WiseMapping Public License, Version 1.0 (the "License").
* It is basically the Apache License, Version 2.0 (the "License") plus the * It is basically the Apache License, Version 2.0 (the "License") plus the
* "powered by wisemapping" text requirement on every single page; * "powered by wisemapping" text requirement on every single page;
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the license at * You may obtain a copy of the license at
* *
* http://www.wisemapping.org/license * http://www.wisemapping.org/license
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import com.wisemapping.model.Collaborator; import com.wisemapping.model.Collaborator;
import com.wisemapping.model.Mindmap; import com.wisemapping.model.Mindmap;
import org.codehaus.jackson.annotate.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;

View File

@ -1,28 +1,28 @@
/* /*
* Copyright [2015] [wisemapping] * Copyright [2015] [wisemapping]
* *
* Licensed under WiseMapping Public License, Version 1.0 (the "License"). * Licensed under WiseMapping Public License, Version 1.0 (the "License").
* It is basically the Apache License, Version 2.0 (the "License") plus the * It is basically the Apache License, Version 2.0 (the "License") plus the
* "powered by wisemapping" text requirement on every single page; * "powered by wisemapping" text requirement on every single page;
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the license at * You may obtain a copy of the license at
* *
* http://www.wisemapping.org/license * http://www.wisemapping.org/license
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.wisemapping.rest.model; package com.wisemapping.rest.model;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.wisemapping.model.User; import com.wisemapping.model.User;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
@ -32,7 +32,6 @@ import java.util.Calendar;
import java.util.Set; import java.util.Set;
@XmlRootElement(name = "user") @XmlRootElement(name = "user")
@XmlAccessorType(XmlAccessType.PROPERTY) @XmlAccessorType(XmlAccessType.PROPERTY)
@JsonAutoDetect( @JsonAutoDetect(
@ -54,6 +53,7 @@ public class RestUser {
this.password = user.getPassword(); this.password = user.getPassword();
} }
@JsonIgnore
public Calendar getCreationDate() { public Calendar getCreationDate() {
return user.getCreationDate(); return user.getCreationDate();
} }
@ -82,10 +82,6 @@ public class RestUser {
user.setLastname(lastname); user.setLastname(lastname);
} }
// public boolean isActive() {
// return user.isActive();
// }
public long getId() { public long getId() {
return user.getId(); return user.getId();
} }
@ -102,10 +98,6 @@ public class RestUser {
user.setEmail(email); user.setEmail(email);
} }
public void setCreationDate(Calendar creationDate) {
// user.setCreationDate(creationDate);
}
public void setPassword(final String password) { public void setPassword(final String password) {
this.user.setPassword(password); this.user.setPassword(password);
this.password = password; this.password = password;

View File

@ -24,8 +24,8 @@ public class AuthenticationSuccessHandler extends SavedRequestAwareAuthenticatio
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws ServletException, IOException { public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws ServletException, IOException {
SavedRequest savedRequest = cache.getRequest(request, response); SavedRequest savedRequest = cache.getRequest(request, response);
if (savedRequest!=null && savedRequest.getRedirectUrl().contains("c/restful")) { if (savedRequest != null && savedRequest.getRedirectUrl().contains("c/restful")) {
cache.removeRequest(request,response); cache.removeRequest(request, response);
} }
super.onAuthenticationSuccess(request, response, authentication); super.onAuthenticationSuccess(request, response, authentication);
} }

View File

@ -6,7 +6,6 @@ import org.apache.http.NameValuePair;
import org.apache.http.client.fluent.Form; import org.apache.http.client.fluent.Form;
import org.apache.http.client.fluent.Request; import org.apache.http.client.fluent.Request;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;

View File

@ -27,6 +27,7 @@ import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller; import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller; import javax.xml.bind.Unmarshaller;
import java.io.*; import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -34,11 +35,11 @@ public class JAXBUtils {
private final static Map<String, JAXBContext> context = new HashMap<String, JAXBContext>(); private final static Map<String, JAXBContext> context = new HashMap<String, JAXBContext>();
public static Object getMapObject(@NotNull InputStream is, @NotNull final String pakage) throws JAXBException, UnsupportedEncodingException { public static Object getMapObject(@NotNull InputStream is, @NotNull final String pakage) throws JAXBException {
final JAXBContext context = getInstance(pakage); final JAXBContext context = getInstance(pakage);
final Unmarshaller unmarshaller = context.createUnmarshaller(); final Unmarshaller unmarshaller = context.createUnmarshaller();
final Reader reader = new InputStreamReader(is, "UTF-8"); final Reader reader = new InputStreamReader(is, StandardCharsets.UTF_8);
return unmarshaller.unmarshal(reader); return unmarshaller.unmarshal(reader);
} }

View File

@ -0,0 +1 @@
# Solves error Can't find bundle for base name javax.xml.bind.Messages, locale en_US

View File

@ -1,11 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<bean id="wiseDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <bean id="wiseDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${database.driver}"/> <property name="driverClassName" value="${database.driver}"/>
@ -16,7 +13,7 @@
<property name="validationQuery" value="${database.validation.query}"/> <property name="validationQuery" value="${database.validation.query}"/>
</bean> </bean>
<!--Descoment this lines for production environments --> <!--Disconnect this lines for production environments -->
<!--<bean id="wiseDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">--> <!--<bean id="wiseDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">-->
<!--<property name="jndiName">--> <!--<property name="jndiName">-->
<!--<value>java:comp/env/jdbc/wisemapping</value>--> <!--<value>java:comp/env/jdbc/wisemapping</value>-->

View File

@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> http://www.springframework.org/schema/beans/spring-beans.xsd">
<beans> <beans>
<bean id="userManager" class="com.wisemapping.dao.UserManagerImpl"> <bean id="userManager" class="com.wisemapping.dao.UserManagerImpl">
<property name="hibernateTemplate" ref="hibernateTemplate"/> <property name="hibernateTemplate" ref="hibernateTemplate"/>

View File

@ -6,11 +6,11 @@
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation=" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
<context:component-scan base-package="com.wisemapping.rest"/> <context:component-scan base-package="com.wisemapping.rest"/>
<context:annotation-config/> <context:annotation-config/>
@ -50,8 +50,12 @@
</property> </property>
</bean> </bean>
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
<property name="defaultContentType" value="application/json"/> <property name="favorParameter" value="true"/>
<property name="parameterName" value="mediaType"/>
<property name="defaultContentType" value="application/json" />
<property name="useJaf" value="false" />
<property name="mediaTypes"> <property name="mediaTypes">
<map> <map>
<entry key="xml" value="application/xml"/> <entry key="xml" value="application/xml"/>
@ -68,6 +72,10 @@
<entry key="mmap" value="application/vnd.mindjet.mindmanager"/> <entry key="mmap" value="application/vnd.mindjet.mindmanager"/>
</map> </map>
</property> </property>
</bean>
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="contentNegotiationManager" ref="contentNegotiationManager"/>
<property name="viewResolvers"> <property name="viewResolvers">
<list> <list>
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/> <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
@ -75,7 +83,7 @@
</property> </property>
<property name="defaultViews"> <property name="defaultViews">
<list> <list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"> <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
<property name="extractValueFromSingleKeyModel" value="true"/> <property name="extractValueFromSingleKeyModel" value="true"/>
</bean> </bean>
<bean class="org.springframework.web.servlet.view.xml.MarshallingView"> <bean class="org.springframework.web.servlet.view.xml.MarshallingView">

View File

@ -4,9 +4,9 @@
xmlns:sec="http://www.springframework.org/schema/security" xmlns:sec="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd"> http://www.springframework.org/schema/security/spring-security-4.2.xsd">
<sec:authentication-manager alias="authenticationManager"> <sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider ref="dbAuthenticationProvider"/> <sec:authentication-provider ref="dbAuthenticationProvider"/>

View File

@ -3,9 +3,9 @@
xmlns:sec="http://www.springframework.org/schema/security" xmlns:sec="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd"> http://www.springframework.org/schema/security/spring-security-4.2.xsd">
<sec:authentication-manager> <sec:authentication-manager>

View File

@ -4,9 +4,9 @@
xmlns:sec="http://www.springframework.org/schema/security" xmlns:sec="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd"> http://www.springframework.org/schema/security/spring-security-4.2.xsd">
<sec:http pattern="/css/**" security="none"/> <sec:http pattern="/css/**" security="none"/>
<sec:http pattern="/js/**" security="none"/> <sec:http pattern="/js/**" security="none"/>
@ -17,7 +17,7 @@
<sec:http pattern="/c/login" security="none"/> <sec:http pattern="/c/login" security="none"/>
<sec:http pattern="/c/loginopenid" security="none"/> <sec:http pattern="/c/loginopenid" security="none"/>
<sec:http pattern="/c/user/registration" security="none"/> <sec:http pattern="/c/user/registration" security="none"/>
<sec:http pattern="/c/user/resetpassword" security="none"/> <sec:http pattern="/c/user/resetPassword" security="none"/>
<sec:http pattern="/c/home" security="none"/> <sec:http pattern="/c/home" security="none"/>
<sec:http pattern="/c/maps/*/embed" security="none"/> <sec:http pattern="/c/maps/*/embed" security="none"/>
@ -36,13 +36,18 @@
<sec:http use-expressions="true" create-session="stateless" pattern="/service/**"> <sec:http use-expressions="true" create-session="stateless" pattern="/service/**">
<sec:csrf disabled="true"/>
<sec:intercept-url pattern="/service/admin/users/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/> <sec:intercept-url pattern="/service/admin/users/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/>
<sec:intercept-url pattern="/service/admin/database/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/> <sec:intercept-url pattern="/service/admin/database/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/>
<sec:intercept-url pattern="/service/**" access="isAuthenticated() and hasRole('ROLE_USER')"/> <sec:intercept-url pattern="/service/**" access="isAuthenticated() and hasRole('ROLE_USER')"/>
<sec:http-basic/> <sec:http-basic/>
</sec:http> </sec:http>
<sec:http use-expressions="true" access-denied-page="/c/login"> <sec:http use-expressions="true">
<sec:csrf disabled="true"/>
<sec:access-denied-handler error-page="/c/login"/>
<sec:intercept-url pattern="/c/restful/admin/users/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/> <sec:intercept-url pattern="/c/restful/admin/users/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/>
<sec:intercept-url pattern="/c/restful/admin/database/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/> <sec:intercept-url pattern="/c/restful/admin/database/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/>
<sec:intercept-url pattern="/c/**/*" access="isAuthenticated() and hasRole('ROLE_USER')"/> <sec:intercept-url pattern="/c/**/*" access="isAuthenticated() and hasRole('ROLE_USER')"/>
@ -51,7 +56,7 @@
authentication-success-handler-ref="authenticationSuccessHandler" authentication-success-handler-ref="authenticationSuccessHandler"
always-use-default-target="false" always-use-default-target="false"
authentication-failure-url="/c/login?login_error=2" authentication-failure-url="/c/login?login_error=2"
login-processing-url="/c/j_spring_security_check"/> login-processing-url="/c/perform-login"/>
<sec:openid-login user-service-ref="userDetailsService" <sec:openid-login user-service-ref="userDetailsService"
authentication-failure-url="/c/login.jsp?login_error=true" authentication-failure-url="/c/login.jsp?login_error=true"

View File

@ -3,7 +3,9 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd">
<context:property-placeholder location="/WEB-INF/app.properties" ignore-unresolvable="true"/> <context:property-placeholder location="/WEB-INF/app.properties" ignore-unresolvable="true"/>

View File

@ -5,11 +5,11 @@
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation=" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
<context:component-scan base-package="com.wisemapping.webmvc"/> <context:component-scan base-package="com.wisemapping.webmvc"/>
<context:annotation-config/> <context:annotation-config/>

View File

@ -21,13 +21,13 @@
<div class="row jumbotron" id="loginPanel"> <div class="row jumbotron" id="loginPanel">
<h1><spring:message code="SIGN_IN"/></h1> <h1><spring:message code="SIGN_IN"/></h1>
<form action="/c/j_spring_security_check" method="POST" class="form-horizontal" <form action="/c/perform-login" method="POST" class="form-horizontal"
id="loginForm"> id="loginForm">
<div class="form-group"> <div class="form-group">
<label class="col-md-3 control-label" for="email"><spring:message code="EMAIL"/>: </label> <label class="col-md-3 control-label" for="email"><spring:message code="EMAIL"/>: </label>
<div class="col-md-9"> <div class="col-md-9">
<input type='email' tabindex="1" id="email" name='j_username' required="required" <input type='email' tabindex="1" id="username" name='username' required="required"
class="form-control"/> class="form-control"/>
</div> </div>
</div> </div>
@ -35,7 +35,7 @@
<label class="col-md-3 control-label" for="password"><spring:message code="PASSWORD"/>: </label> <label class="col-md-3 control-label" for="password"><spring:message code="PASSWORD"/>: </label>
<div class="col-md-9"> <div class="col-md-9">
<input type='password' tabindex="2" id="password" name='j_password' required="required" <input type='password' tabindex="2" id="password" name='password' required="required"
class="form-control"/> class="form-control"/>
</div> </div>
</div> </div>

View File

@ -15,7 +15,7 @@
<p><spring:message code="FORGOT_PASSWORD_MESSAGE"/></p> <p><spring:message code="FORGOT_PASSWORD_MESSAGE"/></p>
<form:form method="post" commandName="resetPassword" class="form-horizontal"> <form:form method="post" modelAttribute="resetPassword" class="form-horizontal">
<label for="email" class="col-md-2 control-label"><spring:message code="EMAIL"/>: </label> <label for="email" class="col-md-2 control-label"><spring:message code="EMAIL"/>: </label>
<div class="col-md-5"> <div class="col-md-5">
<input id="email" type="email" required="required" name="email" class="form-control"/> <input id="email" type="email" required="required" name="email" class="form-control"/>

View File

@ -4,7 +4,7 @@
<h1><spring:message code="USER_REGISTRATION"/></h1> <h1><spring:message code="USER_REGISTRATION"/></h1>
<p><spring:message code="REGISTRATION_TITLE_MSG"/></p> <p><spring:message code="REGISTRATION_TITLE_MSG"/></p>
<form:form method="post" commandName="user" class="form-horizontal"> <form:form method="post" modelAttribute="user" class="form-horizontal">
<div class="form-group"> <div class="form-group">
<label for="email" class="col-md-2 control-label"><spring:message code="EMAIL"/>: </label> <label for="email" class="col-md-2 control-label"><spring:message code="EMAIL"/>: </label>
<div class="col-md-5"> <div class="col-md-5">

View File

@ -22,18 +22,22 @@ public class ExportXsltBasedTest {
@Test(dataProvider = "Data-Provider-Function") @Test(dataProvider = "Data-Provider-Function")
public void exportImportExportTest(@NotNull XSLTExporter.Type type, @NotNull final File wisemap, @NotNull final File recFile) throws ImporterException, IOException, ExportException { public void exportImportExportTest(@NotNull XSLTExporter.Type type, @NotNull final File wisemap, @NotNull final File recFile) throws IOException, ExportException {
final Exporter exporter = XSLTExporter.create(type); final Exporter exporter = XSLTExporter.create(type);
byte[] wiseMapContent = FileUtils.readFileToByteArray(wisemap); byte[] wiseMapContent = FileUtils.readFileToByteArray(wisemap);
if (recFile.exists()) { if (recFile.exists()) {
// Compare rec and file ... // Compare rec and file ...
final String recContent = FileUtils.readFileToString(recFile, ENC_UTF_8); final String recContent = FileUtils.readFileToString(recFile, ENC_UTF_8)
.replaceAll("\n\\p{Blank}+", "\n")
.replaceAll("\n+", "\n");
// Export mile content ... // Export mile content ...
final ByteArrayOutputStream bos = new ByteArrayOutputStream(); final ByteArrayOutputStream bos = new ByteArrayOutputStream();
exporter.export(wiseMapContent, bos); exporter.export(wiseMapContent, bos);
final String exportContent = new String(bos.toByteArray(), StandardCharsets.UTF_8); final String exportContent = new String(bos.toByteArray(), StandardCharsets.UTF_8)
.replaceAll("\n\\p{Blank}+", "\n")
.replaceAll("\n+", "\n");
Assert.assertEquals(exportContent, recContent); Assert.assertEquals(exportContent, recContent);
} else { } else {

View File

@ -1,8 +1,8 @@
package com.wisemapping.test.model; package com.wisemapping.test.model;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wisemapping.rest.model.*; import com.wisemapping.rest.model.*;
import org.codehaus.jackson.map.ObjectMapper;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import java.io.IOException; import java.io.IOException;

View File

@ -97,12 +97,12 @@ public class RestAccountITCase {
HttpEntity<RestUser> findUserEntity = new HttpEntity<RestUser>(requestHeaders); HttpEntity<RestUser> findUserEntity = new HttpEntity<RestUser>(requestHeaders);
// Add extension only to avoid the fact that the last part is extracted ... // Add extension only to avoid the fact that the last part is extracted ...
final String url = BASE_REST_URL + "/admin/users/email/{email}.json"; final String url = BASE_REST_URL + "/admin/users/email/{email}";
return templateRest.exchange(url, HttpMethod.GET, findUserEntity, RestUser.class, email); return templateRest.exchange(url, HttpMethod.GET, findUserEntity, RestUser.class, email);
} }
private URI createUser(HttpHeaders requestHeaders, RestTemplate templateRest, RestUser restUser) { private URI createUser(HttpHeaders requestHeaders, RestTemplate templateRest, RestUser restUser) {
HttpEntity<RestUser> createUserEntity = new HttpEntity<RestUser>(restUser, requestHeaders); HttpEntity<RestUser> createUserEntity = new HttpEntity< >(restUser, requestHeaders);
return templateRest.postForLocation(BASE_REST_URL + "/admin/users", createUserEntity); return templateRest.postForLocation(BASE_REST_URL + "/admin/users", createUserEntity);
} }

View File

@ -125,10 +125,10 @@ public class RestAdminITCase {
} }
private ResponseEntity<RestUser> findUserByEmail(HttpHeaders requestHeaders, RestTemplate templateRest, final String email) { private ResponseEntity<RestUser> findUserByEmail(HttpHeaders requestHeaders, RestTemplate templateRest, final String email) {
HttpEntity<RestUser> findUserEntity = new HttpEntity<RestUser>(requestHeaders); HttpEntity<RestUser> findUserEntity = new HttpEntity<>(requestHeaders);
// Add extension only to avoid the fact that the last part is extracted ... // Add extension only to avoid the fact that the last part is extracted ...
final String url = BASE_REST_URL + "/admin/users/email/{email}.json"; final String url = BASE_REST_URL + "/admin/users/email/{email}?mediaType=json";
return templateRest.exchange(url, HttpMethod.GET, findUserEntity, RestUser.class, email); return templateRest.exchange(url, HttpMethod.GET, findUserEntity, RestUser.class, email);
} }

View File

@ -2,21 +2,10 @@ package com.wisemapping.test.rest;
import com.wisemapping.exceptions.WiseMappingException; import com.wisemapping.exceptions.WiseMappingException;
import com.wisemapping.model.Label; import com.wisemapping.rest.model.*;
import com.wisemapping.model.User;
import com.wisemapping.rest.model.RestLabel;
import com.wisemapping.rest.model.RestLabelList;
import com.wisemapping.rest.model.RestMindmap;
import com.wisemapping.rest.model.RestMindmapInfo;
import com.wisemapping.rest.model.RestMindmapList;
import com.wisemapping.rest.model.RestUser;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.springframework.http.HttpEntity; import org.springframework.http.*;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import org.testng.SkipException; import org.testng.SkipException;
@ -27,14 +16,8 @@ import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.util.List; import java.util.List;
import static com.wisemapping.test.rest.RestHelper.BASE_REST_URL; import static com.wisemapping.test.rest.RestHelper.*;
import static com.wisemapping.test.rest.RestHelper.COLOR; import static org.testng.Assert.*;
import static com.wisemapping.test.rest.RestHelper.HOST_PORT;
import static com.wisemapping.test.rest.RestHelper.createHeaders;
import static com.wisemapping.test.rest.RestHelper.createTemplate;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.fail;
@Test @Test
public class RestMindmapITCase { public class RestMindmapITCase {