modify interceptor to take module permission as parameter /paths do not work/
This commit is contained in:
1 parent
f68af51a48
commit
b5afe0fce9
2 files changed
+41
-36
No files matched your search
@@ -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; }
|
||||
|
||||
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user