intercepting all requests and checking token for validity /commented out for now for easier testing/

This commit is contained in:
Marcin Michałek committed 2015-01-25 11:06:08 +01:00
1 parent 81bb6c2961
commit 07c11d6c3b
3 files changed
+76 -44

No files matched your search

+2 -5
View File
@@ -1,11 +1,9 @@
package hello;
import hello.agh.edu.bazy.postgresql.gis.GisDataSource;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
@@ -18,7 +16,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
/*
@ImportResource("classpath:/database-blueprint1.xml")
*/
public class Application extends WebMvcConfigurerAdapter implements CommandLineRunner{
public class Application extends WebMvcConfigurerAdapter implements CommandLineRunner {
public static void main(String[] args) {
@@ -34,10 +32,9 @@ public class Application extends WebMvcConfigurerAdapter implements CommandLineR
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new SampleInterceptor()).addPathPatterns("/**");
registry.addInterceptor(new RequestInterceptor()).addPathPatterns("/**");
}
/*
@Bean(name = "gisosmDataSource")
public GisDataSource dataSource() {
@@ -0,0 +1,74 @@
package hello;
import hello.agh.edu.bazy.controllers.LoginController;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Created by lukasgol on 22.01.15.
*/
@Component
public class RequestInterceptor extends HandlerInterceptorAdapter {
RestTemplate restTemplate = new RestTemplate();
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
super.postHandle(request, response, handler, modelAndView);
System.out.println("************************");
System.out.println("post handle interceptor");
System.out.println("************************");
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("************************");
System.out.println("pre handle interceptor");
System.out.println("************************");
/**
* Commented out: checking if user has correct token and permission
* before all requests
*/
// if (!correctHeaders(request)) {
// System.out.println("No token or permission parameter in header.");
// response.sendError(HttpStatus.BAD_REQUEST.value(), "No token or permission parameter in request header");
// return super.preHandle(request, response, handler);
// }
//
// if (validToken(request.getHeader(LoginController.TOKEN), request.getHeader(LoginController.PERMISSION))) {
// return super.preHandle(request, response, handler);
// } else {
// System.out.println("Token or permission not valid.");
// response.sendError(HttpStatus.UNAUTHORIZED.value(), "Token or permission not valid.");
// return super.preHandle(request, response, handler);
// }
/**
* deleted when uncommenting section above ^^
*/
return super.preHandle(request, response, handler);
}
private boolean validToken(String token, String permission) {
return restTemplate.getForObject(ModuleServicePaths.CHECK_PERMISSION_FOR_TOKEN
.concat("?token=").concat(token)
.concat("&permission=").concat(permission),
Boolean.class
);
}
private boolean correctHeaders(HttpServletRequest request) {
return request.getHeader(LoginController.TOKEN) != null
&& request.getHeader(LoginController.PERMISSION) != null;
}
}
@@ -1,39 +0,0 @@
package hello;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Created by lukasgol on 22.01.15.
*/
@Component
public class SampleInterceptor extends HandlerInterceptorAdapter {
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
super.postHandle(request, response, handler, modelAndView);
System.out.println("************************");
System.out.println("post handle interceptor");
System.out.println("************************");
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("************************");
System.out.println("pre handle interceptor");
System.out.println("************************");
//
// if (request.getHeader(LoginController.TOKEN) == null || request.getHeader(LoginController.PERMISSION) == null) {
// System.out.println("No token or permission parameter in header.");
// response.sendError(HttpStatus.UNAUTHORIZED.value(), "No token or permission parameter in request header");
// return super.preHandle(request, response, handler);
// }
return super.preHandle(request, response, handler);
}
}