From 3f9f3d5ad1f9c4726eaa1af4a86862eba22f2c1c Mon Sep 17 00:00:00 2001 From: Florian Date: Fri, 16 Mar 2018 23:37:33 +0100 Subject: [PATCH] Packages moving and test of security layer. --- .../java/org/codiki/core/AbstractFilter.java | 44 ++++++++++++++----- .../{ => core}/config/JpaConfiguration.java | 2 +- .../{ => core}/entities/dto/UserDAO.java | 6 +-- .../entities/persistence/Category.java | 2 +- .../entities/persistence/Comment.java | 2 +- .../entities/persistence/CommentHistory.java | 2 +- .../entities/persistence/Image.java | 2 +- .../{ => core}/entities/persistence/Post.java | 4 +- .../entities/persistence/PostHistory.java | 2 +- .../{ => core}/entities/persistence/Role.java | 2 +- .../entities/persistence/SubCategory.java | 2 +- .../{ => core}/entities/persistence/User.java | 4 +- .../{ => core}/entities/security/Token.java | 2 +- .../core/repositories/PostRepository.java | 10 +++++ .../repositories/UserRepository.java | 4 +- .../security/AuthenticationFilter.java | 17 +++++-- .../org/codiki/{ => core}/security/Route.java | 16 ++++--- .../{ => core}/security/TokenService.java | 4 +- .../codiki/{ => core}/utils/DateUtils.java | 2 +- .../codiki/{ => core}/utils/RegexUtils.java | 2 +- .../codiki/{ => core}/utils/StringUtils.java | 2 +- .../org/codiki/login/LoginController.java | 4 +- .../java/org/codiki/login/LoginService.java | 10 ++--- .../java/org/codiki/posts/PostController.java | 21 +++++++++ .../org/codiki/core/AbstractFilterTest.java | 20 ++++++--- 25 files changed, 132 insertions(+), 56 deletions(-) rename src/main/java/org/codiki/{ => core}/config/JpaConfiguration.java (97%) rename src/main/java/org/codiki/{ => core}/entities/dto/UserDAO.java (91%) rename src/main/java/org/codiki/{ => core}/entities/persistence/Category.java (97%) rename src/main/java/org/codiki/{ => core}/entities/persistence/Comment.java (97%) rename src/main/java/org/codiki/{ => core}/entities/persistence/CommentHistory.java (97%) rename src/main/java/org/codiki/{ => core}/entities/persistence/Image.java (96%) rename src/main/java/org/codiki/{ => core}/entities/persistence/Post.java (97%) rename src/main/java/org/codiki/{ => core}/entities/persistence/PostHistory.java (97%) rename src/main/java/org/codiki/{ => core}/entities/persistence/Role.java (93%) rename src/main/java/org/codiki/{ => core}/entities/persistence/SubCategory.java (94%) rename src/main/java/org/codiki/{ => core}/entities/persistence/User.java (97%) rename src/main/java/org/codiki/{ => core}/entities/security/Token.java (97%) create mode 100644 src/main/java/org/codiki/core/repositories/PostRepository.java rename src/main/java/org/codiki/{ => core}/repositories/UserRepository.java (79%) rename src/main/java/org/codiki/{ => core}/security/AuthenticationFilter.java (55%) rename src/main/java/org/codiki/{ => core}/security/Route.java (71%) rename src/main/java/org/codiki/{ => core}/security/TokenService.java (96%) rename src/main/java/org/codiki/{ => core}/utils/DateUtils.java (96%) rename src/main/java/org/codiki/{ => core}/utils/RegexUtils.java (98%) rename src/main/java/org/codiki/{ => core}/utils/StringUtils.java (98%) create mode 100644 src/main/java/org/codiki/posts/PostController.java diff --git a/src/main/java/org/codiki/core/AbstractFilter.java b/src/main/java/org/codiki/core/AbstractFilter.java index 92c9bc5..cdbe8c3 100644 --- a/src/main/java/org/codiki/core/AbstractFilter.java +++ b/src/main/java/org/codiki/core/AbstractFilter.java @@ -11,9 +11,11 @@ import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; -import org.codiki.security.Route; -import org.codiki.utils.StringUtils; +import org.codiki.core.security.Route; +import org.codiki.core.utils.StringUtils; +import org.springframework.http.HttpMethod; /** * Base class for all filters of the application.
@@ -54,7 +56,7 @@ public abstract class AbstractFilter implements Filter { * @param chain * The chain. */ - protected abstract void filter(HttpServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException; + protected abstract void filter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException; @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) @@ -62,7 +64,7 @@ public abstract class AbstractFilter implements Filter { HttpServletRequest httpRequest = (HttpServletRequest) request; if(isRequestFiltered(httpRequest.getRequestURL().toString(), httpRequest.getMethod())) { - filter(httpRequest, response, chain); + filter(httpRequest, (HttpServletResponse) response, chain); } else { chain.doFilter(request, response); } @@ -71,14 +73,14 @@ public abstract class AbstractFilter implements Filter { /** * Check if the url is allowed with the given method in parameters. * - * @param pUrlRequest + * @param pRequestUrl * The url request. - * @param pMethodRequest + * @param pRequestMethod * The http method of the request. * @return {@code true} if the url is allowed with the method, {@code false} * otherwise. */ - boolean isRequestFiltered(final String pUrlRequest, final String pMethodRequest) { + boolean isRequestFiltered(final String pRequestUrl, final String pRequestMethod) { boolean result = false; for(final Route route : getRoutes()) { @@ -86,9 +88,31 @@ public abstract class AbstractFilter implements Filter { * Check urls matching, and if the method of the route isn't set, all methods * are allowed. Otherwise, we check the methods too. */ - result = Pattern.matches(StringUtils.concat(PREFIX_URL_PATH, route.getUrl()), pUrlRequest) - && (!route.getMethod().isPresent() || pMethodRequest.equals(route.getMethod().get().toString())); - if(result) { + if(Pattern.matches(StringUtils.concat(PREFIX_URL_PATH, route.getUrl()), pRequestUrl)) { + if(!route.getMethod().isPresent() || isMethodFiltered(route, pRequestMethod)) { + result = true; + break; + } + } + } + + return result; + } + + /** + * Checks if the route do filter the method in parameters. + * + * @param pRoute + * The registered route. + * @param pRequestMethod + * The http method to check with the registered route. + */ + boolean isMethodFiltered(final Route pRoute, final String pRequestMethod) { + boolean result = false; + + for(final HttpMethod routeMethod : pRoute.getMethod().get()) { + if(routeMethod.name().equals(pRequestMethod)) { + result = true; break; } } diff --git a/src/main/java/org/codiki/config/JpaConfiguration.java b/src/main/java/org/codiki/core/config/JpaConfiguration.java similarity index 97% rename from src/main/java/org/codiki/config/JpaConfiguration.java rename to src/main/java/org/codiki/core/config/JpaConfiguration.java index eab08c5..ebe40d7 100644 --- a/src/main/java/org/codiki/config/JpaConfiguration.java +++ b/src/main/java/org/codiki/core/config/JpaConfiguration.java @@ -1,4 +1,4 @@ -package org.codiki.config; +package org.codiki.core.config; import javax.sql.DataSource; diff --git a/src/main/java/org/codiki/entities/dto/UserDAO.java b/src/main/java/org/codiki/core/entities/dto/UserDAO.java similarity index 91% rename from src/main/java/org/codiki/entities/dto/UserDAO.java rename to src/main/java/org/codiki/core/entities/dto/UserDAO.java index 2754378..724c63d 100644 --- a/src/main/java/org/codiki/entities/dto/UserDAO.java +++ b/src/main/java/org/codiki/core/entities/dto/UserDAO.java @@ -1,9 +1,9 @@ -package org.codiki.entities.dto; +package org.codiki.core.entities.dto; import java.util.Date; -import org.codiki.entities.persistence.Role; -import org.codiki.entities.persistence.User; +import org.codiki.core.entities.persistence.Role; +import org.codiki.core.entities.persistence.User; public class UserDAO { diff --git a/src/main/java/org/codiki/entities/persistence/Category.java b/src/main/java/org/codiki/core/entities/persistence/Category.java similarity index 97% rename from src/main/java/org/codiki/entities/persistence/Category.java rename to src/main/java/org/codiki/core/entities/persistence/Category.java index 6e4688c..25de86a 100644 --- a/src/main/java/org/codiki/entities/persistence/Category.java +++ b/src/main/java/org/codiki/core/entities/persistence/Category.java @@ -1,4 +1,4 @@ -package org.codiki.entities.persistence; +package org.codiki.core.entities.persistence; import java.io.Serializable; import java.util.List; diff --git a/src/main/java/org/codiki/entities/persistence/Comment.java b/src/main/java/org/codiki/core/entities/persistence/Comment.java similarity index 97% rename from src/main/java/org/codiki/entities/persistence/Comment.java rename to src/main/java/org/codiki/core/entities/persistence/Comment.java index 4730891..ad6fc7f 100644 --- a/src/main/java/org/codiki/entities/persistence/Comment.java +++ b/src/main/java/org/codiki/core/entities/persistence/Comment.java @@ -1,4 +1,4 @@ -package org.codiki.entities.persistence; +package org.codiki.core.entities.persistence; import java.io.Serializable; import java.util.Date; diff --git a/src/main/java/org/codiki/entities/persistence/CommentHistory.java b/src/main/java/org/codiki/core/entities/persistence/CommentHistory.java similarity index 97% rename from src/main/java/org/codiki/entities/persistence/CommentHistory.java rename to src/main/java/org/codiki/core/entities/persistence/CommentHistory.java index a601deb..1491416 100644 --- a/src/main/java/org/codiki/entities/persistence/CommentHistory.java +++ b/src/main/java/org/codiki/core/entities/persistence/CommentHistory.java @@ -1,4 +1,4 @@ -package org.codiki.entities.persistence; +package org.codiki.core.entities.persistence; import java.io.Serializable; import java.util.Date; diff --git a/src/main/java/org/codiki/entities/persistence/Image.java b/src/main/java/org/codiki/core/entities/persistence/Image.java similarity index 96% rename from src/main/java/org/codiki/entities/persistence/Image.java rename to src/main/java/org/codiki/core/entities/persistence/Image.java index 590b73e..73f88f1 100644 --- a/src/main/java/org/codiki/entities/persistence/Image.java +++ b/src/main/java/org/codiki/core/entities/persistence/Image.java @@ -1,4 +1,4 @@ -package org.codiki.entities.persistence; +package org.codiki.core.entities.persistence; import java.io.Serializable; import java.util.Date; diff --git a/src/main/java/org/codiki/entities/persistence/Post.java b/src/main/java/org/codiki/core/entities/persistence/Post.java similarity index 97% rename from src/main/java/org/codiki/entities/persistence/Post.java rename to src/main/java/org/codiki/core/entities/persistence/Post.java index b599503..289cc9d 100644 --- a/src/main/java/org/codiki/entities/persistence/Post.java +++ b/src/main/java/org/codiki/core/entities/persistence/Post.java @@ -1,4 +1,4 @@ -package org.codiki.entities.persistence; +package org.codiki.core.entities.persistence; import java.io.Serializable; import java.util.Date; @@ -18,7 +18,7 @@ import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; -import org.codiki.utils.DateUtils; +import org.codiki.core.utils.DateUtils; @Entity @Table(name="post") diff --git a/src/main/java/org/codiki/entities/persistence/PostHistory.java b/src/main/java/org/codiki/core/entities/persistence/PostHistory.java similarity index 97% rename from src/main/java/org/codiki/entities/persistence/PostHistory.java rename to src/main/java/org/codiki/core/entities/persistence/PostHistory.java index ae20eae..ff21981 100644 --- a/src/main/java/org/codiki/entities/persistence/PostHistory.java +++ b/src/main/java/org/codiki/core/entities/persistence/PostHistory.java @@ -1,4 +1,4 @@ -package org.codiki.entities.persistence; +package org.codiki.core.entities.persistence; import java.io.Serializable; import java.util.Date; diff --git a/src/main/java/org/codiki/entities/persistence/Role.java b/src/main/java/org/codiki/core/entities/persistence/Role.java similarity index 93% rename from src/main/java/org/codiki/entities/persistence/Role.java rename to src/main/java/org/codiki/core/entities/persistence/Role.java index 7aca3a7..7d761cb 100644 --- a/src/main/java/org/codiki/entities/persistence/Role.java +++ b/src/main/java/org/codiki/core/entities/persistence/Role.java @@ -1,4 +1,4 @@ -package org.codiki.entities.persistence; +package org.codiki.core.entities.persistence; import java.io.Serializable; diff --git a/src/main/java/org/codiki/entities/persistence/SubCategory.java b/src/main/java/org/codiki/core/entities/persistence/SubCategory.java similarity index 94% rename from src/main/java/org/codiki/entities/persistence/SubCategory.java rename to src/main/java/org/codiki/core/entities/persistence/SubCategory.java index fc12c62..2c3238b 100644 --- a/src/main/java/org/codiki/entities/persistence/SubCategory.java +++ b/src/main/java/org/codiki/core/entities/persistence/SubCategory.java @@ -1,4 +1,4 @@ -package org.codiki.entities.persistence; +package org.codiki.core.entities.persistence; import java.util.List; diff --git a/src/main/java/org/codiki/entities/persistence/User.java b/src/main/java/org/codiki/core/entities/persistence/User.java similarity index 97% rename from src/main/java/org/codiki/entities/persistence/User.java rename to src/main/java/org/codiki/core/entities/persistence/User.java index a57cd4f..48d58f8 100644 --- a/src/main/java/org/codiki/entities/persistence/User.java +++ b/src/main/java/org/codiki/core/entities/persistence/User.java @@ -1,4 +1,4 @@ -package org.codiki.entities.persistence; +package org.codiki.core.entities.persistence; import java.io.Serializable; import java.util.ArrayList; @@ -20,7 +20,7 @@ import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; -import org.codiki.entities.security.Token; +import org.codiki.core.entities.security.Token; @Entity @Table(name="`user`") diff --git a/src/main/java/org/codiki/entities/security/Token.java b/src/main/java/org/codiki/core/entities/security/Token.java similarity index 97% rename from src/main/java/org/codiki/entities/security/Token.java rename to src/main/java/org/codiki/core/entities/security/Token.java index 04d969c..15afb7e 100644 --- a/src/main/java/org/codiki/entities/security/Token.java +++ b/src/main/java/org/codiki/core/entities/security/Token.java @@ -1,4 +1,4 @@ -package org.codiki.entities.security; +package org.codiki.core.entities.security; import java.math.BigInteger; import java.security.SecureRandom; diff --git a/src/main/java/org/codiki/core/repositories/PostRepository.java b/src/main/java/org/codiki/core/repositories/PostRepository.java new file mode 100644 index 0000000..460ffc8 --- /dev/null +++ b/src/main/java/org/codiki/core/repositories/PostRepository.java @@ -0,0 +1,10 @@ +package org.codiki.core.repositories; + +import org.codiki.core.entities.persistence.Post; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface PostRepository extends CrudRepository { + +} diff --git a/src/main/java/org/codiki/repositories/UserRepository.java b/src/main/java/org/codiki/core/repositories/UserRepository.java similarity index 79% rename from src/main/java/org/codiki/repositories/UserRepository.java rename to src/main/java/org/codiki/core/repositories/UserRepository.java index a3a51c6..eec187a 100644 --- a/src/main/java/org/codiki/repositories/UserRepository.java +++ b/src/main/java/org/codiki/core/repositories/UserRepository.java @@ -1,8 +1,8 @@ -package org.codiki.repositories; +package org.codiki.core.repositories; import java.util.Optional; -import org.codiki.entities.persistence.User; +import org.codiki.core.entities.persistence.User; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; diff --git a/src/main/java/org/codiki/security/AuthenticationFilter.java b/src/main/java/org/codiki/core/security/AuthenticationFilter.java similarity index 55% rename from src/main/java/org/codiki/security/AuthenticationFilter.java rename to src/main/java/org/codiki/core/security/AuthenticationFilter.java index 8707893..50b4819 100644 --- a/src/main/java/org/codiki/security/AuthenticationFilter.java +++ b/src/main/java/org/codiki/core/security/AuthenticationFilter.java @@ -1,4 +1,4 @@ -package org.codiki.security; +package org.codiki.core.security; import java.io.IOException; import java.util.Arrays; @@ -8,8 +8,10 @@ import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.codiki.core.AbstractFilter; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; @@ -18,18 +20,25 @@ import org.springframework.stereotype.Component; @Order(Ordered.HIGHEST_PRECEDENCE) public class AuthenticationFilter extends AbstractFilter { + @Autowired + private TokenService tokenService; + @Override protected List getRoutes() { return Arrays.asList( - new Route("\\/api\\/account\\/.*") + new Route("\\/api\\/posts.*") ); } @Override - protected void filter(HttpServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + protected void filter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("Token : " + request.getHeader("token")); - chain.doFilter(request, response); + if(tokenService.isUserConnected(request.getHeader("token"))) { + chain.doFilter(request, response); + } else { + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + } } } diff --git a/src/main/java/org/codiki/security/Route.java b/src/main/java/org/codiki/core/security/Route.java similarity index 71% rename from src/main/java/org/codiki/security/Route.java rename to src/main/java/org/codiki/core/security/Route.java index d697841..65dcd6a 100644 --- a/src/main/java/org/codiki/security/Route.java +++ b/src/main/java/org/codiki/core/security/Route.java @@ -1,5 +1,7 @@ -package org.codiki.security; +package org.codiki.core.security; +import java.util.Arrays; +import java.util.List; import java.util.Optional; import org.springframework.http.HttpMethod; @@ -14,7 +16,7 @@ public class Route { /** The regex to match urls. */ private String url; /** The http method to match. Use a {@link Optional#empty()} to match all methods. */ - private Optional method; + private Optional> method; /** * Instanciate a vierge route. @@ -45,9 +47,9 @@ public class Route { * The http method to match. Use a {@link Optional#empty()} to match * all methods. */ - public Route(final String pUrl, final HttpMethod pMethod) { + public Route(final String pUrl, final HttpMethod... pMethods) { this(pUrl); - this.method = Optional.of(pMethod); + this.method = Optional.of(Arrays.asList(pMethods)); } public String getUrl() { @@ -58,12 +60,12 @@ public class Route { this.url = url; } - public Optional getMethod() { + public Optional> getMethod() { return method; } - public void setMethod(HttpMethod method) { - this.method = Optional.of(method); + public void setMethod(HttpMethod pMethods) { + this.method = Optional.of(Arrays.asList(pMethods)); } } diff --git a/src/main/java/org/codiki/security/TokenService.java b/src/main/java/org/codiki/core/security/TokenService.java similarity index 96% rename from src/main/java/org/codiki/security/TokenService.java rename to src/main/java/org/codiki/core/security/TokenService.java index 09ad13c..d0ccbe4 100644 --- a/src/main/java/org/codiki/security/TokenService.java +++ b/src/main/java/org/codiki/core/security/TokenService.java @@ -1,9 +1,9 @@ -package org.codiki.security; +package org.codiki.core.security; import java.util.Map; import java.util.TreeMap; -import org.codiki.entities.persistence.User; +import org.codiki.core.entities.persistence.User; import org.springframework.stereotype.Service; @Service diff --git a/src/main/java/org/codiki/utils/DateUtils.java b/src/main/java/org/codiki/core/utils/DateUtils.java similarity index 96% rename from src/main/java/org/codiki/utils/DateUtils.java rename to src/main/java/org/codiki/core/utils/DateUtils.java index 083e303..794df71 100644 --- a/src/main/java/org/codiki/utils/DateUtils.java +++ b/src/main/java/org/codiki/core/utils/DateUtils.java @@ -1,4 +1,4 @@ -package org.codiki.utils; +package org.codiki.core.utils; import java.text.DateFormat; import java.text.ParseException; diff --git a/src/main/java/org/codiki/utils/RegexUtils.java b/src/main/java/org/codiki/core/utils/RegexUtils.java similarity index 98% rename from src/main/java/org/codiki/utils/RegexUtils.java rename to src/main/java/org/codiki/core/utils/RegexUtils.java index dd43125..a8e8272 100644 --- a/src/main/java/org/codiki/utils/RegexUtils.java +++ b/src/main/java/org/codiki/core/utils/RegexUtils.java @@ -1,4 +1,4 @@ -package org.codiki.utils; +package org.codiki.core.utils; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/src/main/java/org/codiki/utils/StringUtils.java b/src/main/java/org/codiki/core/utils/StringUtils.java similarity index 98% rename from src/main/java/org/codiki/utils/StringUtils.java rename to src/main/java/org/codiki/core/utils/StringUtils.java index 171d7d4..5ea5d11 100644 --- a/src/main/java/org/codiki/utils/StringUtils.java +++ b/src/main/java/org/codiki/core/utils/StringUtils.java @@ -1,4 +1,4 @@ -package org.codiki.utils; +package org.codiki.core.utils; import org.mindrot.jbcrypt.BCrypt; diff --git a/src/main/java/org/codiki/login/LoginController.java b/src/main/java/org/codiki/login/LoginController.java index d7af219..2fd0f9e 100644 --- a/src/main/java/org/codiki/login/LoginController.java +++ b/src/main/java/org/codiki/login/LoginController.java @@ -3,8 +3,8 @@ package org.codiki.login; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.codiki.entities.dto.UserDAO; -import org.codiki.security.TokenService; +import org.codiki.core.entities.dto.UserDAO; +import org.codiki.core.security.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; diff --git a/src/main/java/org/codiki/login/LoginService.java b/src/main/java/org/codiki/login/LoginService.java index 16666ad..1e92141 100644 --- a/src/main/java/org/codiki/login/LoginService.java +++ b/src/main/java/org/codiki/login/LoginService.java @@ -5,11 +5,11 @@ import java.util.Optional; import javax.naming.AuthenticationException; import javax.servlet.http.HttpServletResponse; -import org.codiki.entities.dto.UserDAO; -import org.codiki.entities.persistence.User; -import org.codiki.repositories.UserRepository; -import org.codiki.security.TokenService; -import org.codiki.utils.StringUtils; +import org.codiki.core.entities.dto.UserDAO; +import org.codiki.core.entities.persistence.User; +import org.codiki.core.repositories.UserRepository; +import org.codiki.core.security.TokenService; +import org.codiki.core.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/src/main/java/org/codiki/posts/PostController.java b/src/main/java/org/codiki/posts/PostController.java new file mode 100644 index 0000000..da819d7 --- /dev/null +++ b/src/main/java/org/codiki/posts/PostController.java @@ -0,0 +1,21 @@ +package org.codiki.posts; + +import org.codiki.core.entities.persistence.Post; +import org.codiki.core.repositories.PostRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/posts") +public class PostController { + + @Autowired + private PostRepository postRepository; + + @GetMapping + public Iterable getAll() { + return postRepository.findAll(); + } +} diff --git a/src/test/java/org/codiki/core/AbstractFilterTest.java b/src/test/java/org/codiki/core/AbstractFilterTest.java index a7b20e3..824a2f0 100644 --- a/src/test/java/org/codiki/core/AbstractFilterTest.java +++ b/src/test/java/org/codiki/core/AbstractFilterTest.java @@ -6,15 +6,13 @@ import java.util.List; import javax.servlet.FilterChain; import javax.servlet.ServletException; -import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; -import org.codiki.security.Route; +import org.codiki.core.security.Route; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.http.HttpMethod; @@ -36,7 +34,7 @@ public class AbstractFilterTest { } @Override - protected void filter(HttpServletRequest request, ServletResponse response, FilterChain chain) + protected void filter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { // Do nothing } @@ -69,4 +67,16 @@ public class AbstractFilterTest { Assert.assertFalse(filter.isRequestFiltered("http://localhost/toto", "GET")); } + + @Test + public void test_isRequestFiltered_severalHttpMethods() { + ((TestFilter) filter).routes = Arrays.asList(new Route("toto", HttpMethod.GET, HttpMethod.POST)); + + Assert.assertTrue(filter.isRequestFiltered("http://localhost/toto", "GET")); + Assert.assertTrue(filter.isRequestFiltered("http://localhost/toto", "POST")); + Assert.assertFalse(filter.isRequestFiltered("http://localhost/toto", "PUT")); + Assert.assertFalse(filter.isRequestFiltered("http://localhost/toto", "DELETE")); + Assert.assertFalse(filter.isRequestFiltered("http://localhost/toto", "DumbThing")); + + } }