diff options
author | Vitaly Takmazov | 2016-12-09 16:14:27 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2016-12-09 16:14:27 +0300 |
commit | 559ae343aa72db04e12b94acfa0bec30ed9a11f1 (patch) | |
tree | 5832b97c6a6a4b565de15a474bae86059763d6bb /juick-api | |
parent | 22d30c3b50fe0ea4c18c45a4450fb1a8b1f1b1b8 (diff) |
juick-spring-www: merge some work from develop branch, port some templates to Thymeleaf
Diffstat (limited to 'juick-api')
12 files changed, 31 insertions, 178 deletions
diff --git a/juick-api/src/main/java/com/juick/api/controllers/Messages.java b/juick-api/src/main/java/com/juick/api/controllers/Messages.java index f30a7687..723d2f15 100644 --- a/juick-api/src/main/java/com/juick/api/controllers/Messages.java +++ b/juick-api/src/main/java/com/juick/api/controllers/Messages.java @@ -3,8 +3,8 @@ package com.juick.api.controllers; import com.juick.Tag; import com.juick.User; import com.juick.api.ApiServer; -import com.juick.api.util.HttpBadRequestException; -import com.juick.api.util.HttpForbiddenException; +import com.juick.server.util.HttpBadRequestException; +import com.juick.server.util.HttpForbiddenException; import com.juick.server.helpers.Status; import com.juick.service.MessagesService; import com.juick.service.TagService; diff --git a/juick-api/src/main/java/com/juick/api/controllers/Notifications.java b/juick-api/src/main/java/com/juick/api/controllers/Notifications.java index ff3679c0..cd31ad39 100644 --- a/juick-api/src/main/java/com/juick/api/controllers/Notifications.java +++ b/juick-api/src/main/java/com/juick/api/controllers/Notifications.java @@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import com.juick.Message; import com.juick.User; -import com.juick.api.util.HttpBadRequestException; -import com.juick.api.util.HttpForbiddenException; +import com.juick.server.util.HttpBadRequestException; +import com.juick.server.util.HttpForbiddenException; import com.juick.server.helpers.Status; import com.juick.server.helpers.TokensList; import com.juick.service.MessagesService; diff --git a/juick-api/src/main/java/com/juick/api/controllers/Others.java b/juick-api/src/main/java/com/juick/api/controllers/Others.java index e2d802d8..852c03d6 100644 --- a/juick-api/src/main/java/com/juick/api/controllers/Others.java +++ b/juick-api/src/main/java/com/juick/api/controllers/Others.java @@ -1,8 +1,8 @@ package com.juick.api.controllers; import com.juick.User; -import com.juick.api.util.HttpForbiddenException; -import com.juick.api.util.HttpNotFoundException; +import com.juick.server.util.HttpForbiddenException; +import com.juick.server.util.HttpNotFoundException; import com.juick.server.helpers.PrivateChats; import com.juick.service.PMQueriesService; import com.juick.service.UserService; diff --git a/juick-api/src/main/java/com/juick/api/controllers/PM.java b/juick-api/src/main/java/com/juick/api/controllers/PM.java index c928a11e..ffbea4b5 100644 --- a/juick-api/src/main/java/com/juick/api/controllers/PM.java +++ b/juick-api/src/main/java/com/juick/api/controllers/PM.java @@ -2,8 +2,8 @@ package com.juick.api.controllers; import com.juick.User; import com.juick.api.ApiServer; -import com.juick.api.util.HttpBadRequestException; -import com.juick.api.util.HttpForbiddenException; +import com.juick.server.util.HttpBadRequestException; +import com.juick.server.util.HttpForbiddenException; import com.juick.service.PMQueriesService; import com.juick.service.UserService; import com.juick.util.UserUtils; diff --git a/juick-api/src/main/java/com/juick/api/controllers/Post.java b/juick-api/src/main/java/com/juick/api/controllers/Post.java index 6d273f7a..53cfc3e5 100644 --- a/juick-api/src/main/java/com/juick/api/controllers/Post.java +++ b/juick-api/src/main/java/com/juick/api/controllers/Post.java @@ -2,10 +2,10 @@ package com.juick.api.controllers; import com.juick.User; import com.juick.api.ApiServer; -import com.juick.api.util.HttpBadRequestException; -import com.juick.api.util.HttpForbiddenException; -import com.juick.api.util.HttpNotFoundException; -import com.juick.api.util.HttpUtils; +import com.juick.server.util.HttpBadRequestException; +import com.juick.server.util.HttpForbiddenException; +import com.juick.server.util.HttpNotFoundException; +import com.juick.server.util.HttpUtils; import com.juick.service.MessagesService; import com.juick.service.SubscriptionService; import com.juick.service.UserService; diff --git a/juick-api/src/main/java/com/juick/api/controllers/Subscriptions.java b/juick-api/src/main/java/com/juick/api/controllers/Subscriptions.java index 42be9903..b93ec1f3 100644 --- a/juick-api/src/main/java/com/juick/api/controllers/Subscriptions.java +++ b/juick-api/src/main/java/com/juick/api/controllers/Subscriptions.java @@ -2,8 +2,8 @@ package com.juick.api.controllers; import com.juick.Message; import com.juick.User; -import com.juick.api.util.HttpBadRequestException; -import com.juick.api.util.HttpForbiddenException; +import com.juick.server.util.HttpBadRequestException; +import com.juick.server.util.HttpForbiddenException; import com.juick.service.MessagesService; import com.juick.service.SubscriptionService; import com.juick.service.UserService; diff --git a/juick-api/src/main/java/com/juick/api/controllers/Users.java b/juick-api/src/main/java/com/juick/api/controllers/Users.java index 396a716c..d6035cf2 100644 --- a/juick-api/src/main/java/com/juick/api/controllers/Users.java +++ b/juick-api/src/main/java/com/juick/api/controllers/Users.java @@ -1,8 +1,8 @@ package com.juick.api.controllers; import com.juick.User; -import com.juick.api.util.HttpForbiddenException; -import com.juick.api.util.HttpNotFoundException; +import com.juick.server.util.HttpForbiddenException; +import com.juick.server.util.HttpNotFoundException; import com.juick.service.UserService; import com.juick.util.UserUtils; import com.juick.util.WebUtils; diff --git a/juick-api/src/main/java/com/juick/api/util/HttpBadRequestException.java b/juick-api/src/main/java/com/juick/api/util/HttpBadRequestException.java deleted file mode 100644 index 3a42e999..00000000 --- a/juick-api/src/main/java/com/juick/api/util/HttpBadRequestException.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.juick.api.util; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -/** - * Created by vt on 24/11/2016. - */ -@ResponseStatus(value = HttpStatus.BAD_REQUEST) -public class HttpBadRequestException extends RuntimeException { - -} diff --git a/juick-api/src/main/java/com/juick/api/util/HttpForbiddenException.java b/juick-api/src/main/java/com/juick/api/util/HttpForbiddenException.java deleted file mode 100644 index d8f4ddf3..00000000 --- a/juick-api/src/main/java/com/juick/api/util/HttpForbiddenException.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.juick.api.util; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -/** - * Created by vt on 24/11/2016. - */ -@ResponseStatus(value = HttpStatus.FORBIDDEN) -public class HttpForbiddenException extends RuntimeException { - -} diff --git a/juick-api/src/main/java/com/juick/api/util/HttpNotFoundException.java b/juick-api/src/main/java/com/juick/api/util/HttpNotFoundException.java deleted file mode 100644 index 14f34cf0..00000000 --- a/juick-api/src/main/java/com/juick/api/util/HttpNotFoundException.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.juick.api.util; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -/** - * Created by vt on 24/11/2016. - */ -@ResponseStatus(value = HttpStatus.NOT_FOUND) -public class HttpNotFoundException extends RuntimeException { - -} diff --git a/juick-api/src/main/java/com/juick/api/util/HttpUtils.java b/juick-api/src/main/java/com/juick/api/util/HttpUtils.java deleted file mode 100644 index ca75eae7..00000000 --- a/juick-api/src/main/java/com/juick/api/util/HttpUtils.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Juick - * Copyright (C) 2008-2011, Ugnich Anton - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -package com.juick.api.util; - -import org.apache.commons.codec.digest.DigestUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.multipart.MultipartFile; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.net.URLConnection; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.UUID; - -/** - * - * @author Ugnich Anton - */ -public class HttpUtils { - private static final Logger logger = LoggerFactory.getLogger(HttpUtils.class); - - public static String receiveMultiPartFile(MultipartFile attach, String tmpDir) { - if (attach !=null && !attach.isEmpty()) { - String partname = attach.getOriginalFilename(); - if (partname != null && partname.length() > 0) { - String attachmentType = partname.substring(partname.length() - 3).toLowerCase(); - if (attachmentType.equals("jpg") || attachmentType.equals("peg") || attachmentType.equals("png")) { - if (attachmentType.equals("peg")) { - attachmentType = "jpg"; - } - String attachmentFName = DigestUtils.md5Hex(UUID.randomUUID().toString()) + "." + attachmentType; - try { - Files.write(Paths.get(tmpDir, attachmentFName), - attach.getBytes()); - return attachmentFName; - } catch (IOException e) { - logger.warn("file receive error", e); - } - } - } - } - return ""; - } - public static String downloadImage(URL url) throws Exception { - String attachmentFName = null; - Exception ex = null; - - InputStream is = null; - FileOutputStream fos = null; - try { - URLConnection urlConn = url.openConnection(); - is = urlConn.getInputStream(); - String mime = urlConn.getContentType(); - - String attachmentType; - if (mime != null && mime.equals("image/jpeg")) { - attachmentType = "jpg"; - } else if (mime != null && mime.equals("image/png")) { - attachmentType = "png"; - } else { - throw new Exception("Wrong file type"); - } - - attachmentFName = UUID.randomUUID().toString() + "." + attachmentType; - fos = new FileOutputStream("/var/www/juick.com/i/tmp/" + attachmentFName); - byte[] buffer = new byte[10240]; - int len; - while ((len = is.read(buffer)) > 0) { - fos.write(buffer, 0, len); - } - } catch (Exception e) { - ex = e; - attachmentFName = null; - } finally { - try { - if (is != null) { - is.close(); - } - } finally { - if (fos != null) { - fos.close(); - } - } - } - - if (ex != null) { - throw ex; - } else { - return attachmentFName; - } - } -} diff --git a/juick-api/src/test/java/com/juick/api/tests/MessagesTests.java b/juick-api/src/test/java/com/juick/api/tests/MessagesTests.java index e0f9b840..9f74c00d 100644 --- a/juick-api/src/test/java/com/juick/api/tests/MessagesTests.java +++ b/juick-api/src/test/java/com/juick/api/tests/MessagesTests.java @@ -38,6 +38,7 @@ import static org.mockito.Mockito.when; import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.httpBasic; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.options; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; /** @@ -173,12 +174,10 @@ public class MessagesTests { @Test public void homeTestWithMessagesAndRememberMe() throws Exception { - String ugnichName = "ugnich"; - String uginchPassword = "MyPassw0rd!"; String msgText = "Привет, я - Угнич"; String hash = "12345678"; - User user = getUser(1, ugnichName, uginchPassword); + User user = getUser(1, ugnichName, ugnichPassword); Message msg = getMessage(user, msgText); when(userService.getUIDbyName(ugnichName)) @@ -198,7 +197,7 @@ public class MessagesTests { mockMvc.perform( get("/home") - .with(httpBasic(ugnichName, uginchPassword))) + .with(httpBasic(ugnichName, ugnichPassword))) .andExpect(status().isOk()) .andReturn(); @@ -211,11 +210,8 @@ public class MessagesTests { } @Test - public void homeTestWithMEssagesAndSimpleCors() throws Exception { - String ugnichName = "ugnich"; - String uginchPassword = "MyPassw0rd!"; - - User user = getUser(1, ugnichName, uginchPassword); + public void homeTestWithMessagesAndSimpleCors() throws Exception { + User user = getUser(1, ugnichName, ugnichPassword); Message msg = getMessage(user, null); when(userService.getFullyUserByName(ugnichName)) @@ -229,7 +225,7 @@ public class MessagesTests { mockMvc.perform( get("/home") - .with(httpBasic(ugnichName, uginchPassword)) + .with(httpBasic(ugnichName, ugnichPassword)) .header("Origin", "http://api.example.net")) .andExpect(status().isOk()) .andExpect(header().string("Access-Control-Allow-Origin", "*")); @@ -237,16 +233,13 @@ public class MessagesTests { @Test public void homeTestWithPreflightCors() throws Exception { - String ugnichName = "ugnich"; - String uginchPassword = "MyPassw0rd!"; - - User user = getUser(1, ugnichName, uginchPassword); + User user = getUser(1, ugnichName, ugnichPassword); when(userService.getFullyUserByName(ugnichName)) .thenReturn(user); mockMvc.perform( options("/home") - .with(httpBasic(ugnichName, uginchPassword)) + .with(httpBasic(ugnichName, ugnichPassword)) .header("Origin", "http://api.example.net") .header("Access-Control-Request-Method", "POST") .header("Access-Control-Request-Headers", "X-PINGOTHER, Content-Type")) @@ -291,4 +284,11 @@ public class MessagesTests { .andExpect(jsonPath("$", hasSize(1))) .andExpect(jsonPath("$[0].messages", is(5))); } + @Test + public void postWithReferer() throws Exception { + mockMvc.perform(post("/post") + .param("body", "yo") + .with(httpBasic(ugnichName, ugnichPassword))) + .andExpect(status().isOk()); + } } |