Project

General

Profile

1
package eu.dnetlib.uoamonitorservice.handlers;
2

    
3
import eu.dnetlib.uoamonitorservice.handlers.utils.AuthorizationUtils;
4
import org.apache.log4j.Logger;
5
import org.springframework.beans.factory.annotation.Value;
6
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
7

    
8
import javax.servlet.http.HttpServletRequest;
9
import javax.servlet.http.HttpServletResponse;
10
import java.util.List;
11

    
12
public class AuthorizationHandler extends HandlerInterceptorAdapter {
13
    private final Logger log = Logger.getLogger(this.getClass());
14
    private AuthorizationUtils helper = new AuthorizationUtils();
15
    private List<String> allowedPostRequests;
16

    
17
    public AuthorizationHandler(String userInfoUrl, String originServer, List<String> allowedPostRequests){
18
        helper.setOriginServer(originServer);
19
        helper.setUserInfoUrl(userInfoUrl);
20
        this.allowedPostRequests = allowedPostRequests;
21
    }
22
    @Override
23
    public boolean preHandle(
24
            HttpServletRequest request,
25
            HttpServletResponse response,
26
            Object handler) throws Exception {
27
//        log.debug("request method " + request.getRemoteHost());
28
        log.debug("properties: " + helper.getOriginServer() + " "+ helper.getUserInfoUrl());
29
        log.debug(allowedPostRequests);
30
        log.debug(allowedPostRequests.contains(request.getServletPath()));
31
        log.debug(request.getServletPath());
32
        if((request.getMethod().equals("POST") || request.getMethod().equals("DELETE")) &&
33
        !allowedPostRequests.contains(request.getServletPath())) {
34
            //TODO check domain & check user info
35
            if(!this.helper.checkCookies(request) || !helper.isAuthorized(helper.getToken(request))){
36

    
37
                response.setHeader("Access-Control-Allow-Credentials","true");
38
                response.setHeader("Access-Control-Allow-Origin","*");
39
                response.setHeader("Vary","Origin");
40

    
41
                response.setStatus(403);
42
                response.sendError(403, "Forbidden: You don't have permission to access. Maybe you are not registered.");
43
                return false;
44
            }
45

    
46
        }
47
        return true;
48
    }
49

    
50

    
51
//    @Override
52
//    public void postHandle(
53
//            HttpServletRequest request,
54
//            HttpServletResponse response,
55
//            Object handler,
56
//            ModelAndView modelAndView) throws Exception {
57
//        log.info("I am here - postHandle ");
58
//    }
59
//
60
//    @Override
61
//    public void afterCompletion(
62
//            HttpServletRequest request,
63
//            HttpServletResponse response,
64
//            Object handler, Exception ex) {
65
//        log.info("I am here - afterCompletion ");
66
//    }
67

    
68
}
(1-1/2)