Project

General

Profile

1
package eu.dnetlib.openaire.user.login.handler;
2

    
3
import com.google.gson.Gson;
4
import eu.dnetlib.openaire.user.login.utils.JWTGenerator;
5
import org.apache.log4j.Logger;
6
import org.mitre.openid.connect.model.OIDCAuthenticationToken;
7
import org.springframework.security.core.Authentication;
8
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
9

    
10
import javax.servlet.http.Cookie;
11
import javax.servlet.http.HttpServletRequest;
12
import javax.servlet.http.HttpServletResponse;
13
import java.io.IOException;
14

    
15
/**
16
 * Created by stefanos on 9/5/2017.
17
 */
18
public class FrontEndLinkURIAuthenticationSuccessHandler implements AuthenticationSuccessHandler {
19

    
20
    private static final Logger logger = Logger.getLogger(FrontEndLinkURIAuthenticationSuccessHandler.class);
21

    
22
    private String frontEndURI;
23
    private String frontPath;
24
    private String frontDomain;
25

    
26
    @Override
27
    public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IllegalArgumentException, IOException   {
28

    
29
        OIDCAuthenticationToken authOIDC = (OIDCAuthenticationToken) authentication;
30

    
31
        try {
32

    
33
//            Cookie jwt = new Cookie("XCsrfToken", JWTGenerator.generateToken(authOIDC, "my-very-secret"));
34
            //Cookie openAIREUser = new Cookie("openAIREUser",  new Gson().toJson(JWTGenerator.generateJsonToken(authOIDC)));
35
            Cookie accessToken = new Cookie("AccessToken", authOIDC.getAccessTokenValue());
36

    
37
            // Expire the cookies in four hours (4 * 3600)
38
//            jwt.setMaxAge(14400);
39
           // openAIREUser.setMaxAge(14400);
40
            accessToken.setMaxAge(14400);
41

    
42
            //TODO DELETE LOG
43
            //logger.info("\n////////////////////////////////////////////////////////////////////////////////////////////////\n");
44
//            logger.info("jwt: " + JWTGenerator.generateToken(authOIDC, "my-very-secret"));
45
            logger.debug("access token: " + authOIDC.getAccessTokenValue());
46
            logger.debug("refresh token: " + authOIDC.getRefreshTokenValue());
47
            logger.debug("CREDENTIALS > " + authOIDC.getCredentials());
48
            logger.debug("Authorities > " + authOIDC.getAuthorities());
49
            logger.debug("\n\nPrincipals > " + authOIDC.getPrincipal());
50
            logger.debug("\n\nUser Info > " + authOIDC.getUserInfo());
51
            logger.debug("\n\nopenAIREUser: " + JWTGenerator.generateJsonToken(authOIDC));
52
            logger.debug("\n////////////////////////////////////////////////////////////////////////////////////////////////\n");
53

    
54
            //TODO DELETE LOG
55
//            logger.info("\n////////////////////////////////////////////////////////////////////////////////////////////////\n");
56
//            logger.info("refresh token: " + authOIDC.getRefreshTokenValue());
57
//            logger.info("\n////////////////////////////////////////////////////////////////////////////////////////////////\n");
58

    
59

    
60
//            jwt.setPath(frontPath);
61
          //  openAIREUser.setPath(frontPath);
62
            accessToken.setPath(frontPath);
63

    
64
            if (frontDomain!=null) {
65
//                jwt.setDomain(frontDomain);
66
            //    openAIREUser.setDomain(frontDomain);
67
                accessToken.setDomain(frontDomain);
68
            }
69

    
70
//            response.addCookie(jwt);
71
 //           response.addCookie(openAIREUser);
72
            response.addCookie(accessToken);
73
            response.sendRedirect(frontEndURI);
74

    
75
        } catch (IOException e) {
76
            logger.error("IOException in redirection ", e);
77
            throw new IOException(e);
78
        }catch (IllegalArgumentException e) {
79
            logger.error("IllegalArgumentException in redirection ", e);
80
            throw new IllegalArgumentException(e);
81
        }
82

    
83
    }
84

    
85
    public String getFrontEndURI() {
86
        return frontEndURI;
87
    }
88

    
89
    public void setFrontEndURI(String frontEndURI) {
90
        this.frontEndURI = frontEndURI;
91
    }
92

    
93
    public String getFrontPath() {
94
        return frontPath;
95
    }
96

    
97
    public void setFrontPath(String frontPath) {
98
        this.frontPath = frontPath;
99
    }
100

    
101
    public String getFrontDomain() {
102
        return frontDomain;
103
    }
104

    
105
    public void setFrontDomain(String frontDomain) {
106
        this.frontDomain = frontDomain;
107
    }
108
}
109

    
110

    
    (1-1/1)