modify interceptor to take module permission as parameter /paths do not work/

This commit is contained in:
Marcin Michałek committed 2015-01-25 12:10:18 +01:00
1 parent f68af51a48
commit b5afe0fce9
2 files changed
+41 -36

No files matched your search

+17 -10
View File
@@ -32,18 +32,25 @@ public class Application extends WebMvcConfigurerAdapter implements CommandLineR
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new RequestInterceptor()).addPathPatterns("/**");
//TODO INTERCEPTORS DO NOT FIRE ON PATHS
// TODO only /** works
// registry.addInterceptor(new RequestInterceptor("GIS_CRUD")).addPathPatterns("/**");
// registry.addInterceptor(new RequestInterceptor("OBJECTS_CRUD")).addPathPatterns("/objects**");
// registry.addInterceptor(new RequestInterceptor("SENSORS_CRUD")).addPathPatterns("/sensors**");
// registry.addInterceptor(new RequestInterceptor("REQUIREMENTS_CRUD")).addPathPatterns("/requirements**");
// registry.addInterceptor(new RequestInterceptor("RULES_CRUD")).addPathPatterns("/rules**");
// registry.addInterceptor(new RequestInterceptor("PROFILES_CRUD")).addPathPatterns("/profiles**");
}
/*
@Bean(name = "gisosmDataSource")
public GisDataSource dataSource() {
GisDataSource dataSource = new GisDataSource();
dataSource.setDriverClassName("org.postgis.DriverWrapper");
dataSource.setUrl("jdbc:postgresql_postGIS://10.156.207.136:5432/osm");
dataSource.setPassword("ztb2015");
dataSource.setUsername("postgres");
return dataSource; }
/*
@Bean(name = "gisosmDataSource")
public GisDataSource dataSource() {
GisDataSource dataSource = new GisDataSource();
dataSource.setDriverClassName("org.postgis.DriverWrapper");
dataSource.setUrl("jdbc:postgresql_postGIS://10.156.207.136:5432/osm");
dataSource.setPassword("ztb2015");
dataSource.setUsername("postgres");
return dataSource; }
*/
+24 -26
View File
@@ -2,6 +2,7 @@ package hello;
import hello.agh.edu.bazy.controllers.LoginController;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.ModelAndView;
@@ -15,8 +16,16 @@ import javax.servlet.http.HttpServletResponse;
*/
@Component
public class RequestInterceptor extends HandlerInterceptorAdapter {
RestTemplate restTemplate = new RestTemplate();
RestTemplate restTemplate;
String permission;
public RequestInterceptor() {
}
public RequestInterceptor(String permission) {
this.restTemplate = new RestTemplate();
this.permission = permission;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
@@ -32,32 +41,22 @@ public class RequestInterceptor extends HandlerInterceptorAdapter {
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 in header.");
response.sendError(HttpStatus.BAD_REQUEST.value(), "No token parameter in request header");
return super.preHandle(request, response, handler);
}
// 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);
if (validToken(request.getHeader(LoginController.TOKEN))) {
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);
}
}
private boolean validToken(String token, String permission) {
private boolean validToken(String token) {
return restTemplate.getForObject(ModuleServicePaths.CHECK_PERMISSION_FOR_TOKEN
.concat("?token=").concat(token)
.concat("&permission=").concat(permission),
@@ -66,8 +65,7 @@ public class RequestInterceptor extends HandlerInterceptorAdapter {
}
private boolean correctHeaders(HttpServletRequest request) {
return request.getHeader(LoginController.TOKEN) != null
&& request.getHeader(LoginController.PERMISSION) != null;
return request.getHeader(LoginController.TOKEN) != null;
}