Revision 61434
Added by Konstantinos Spyrou almost 3 years ago
modules/uoa-repository-manager-service/branches/aai_roles_new/src/main/java/eu/dnetlib/repo/manager/config/FrontEndLinkURIAuthenticationSuccessHandler.java | ||
---|---|---|
1 | 1 |
package eu.dnetlib.repo.manager.config; |
2 | 2 |
|
3 |
import com.google.gson.Gson; |
|
4 |
import com.google.gson.JsonObject; |
|
5 | 3 |
import com.google.gson.JsonParser; |
6 | 4 |
import org.apache.log4j.Logger; |
7 | 5 |
import org.mitre.openid.connect.model.OIDCAuthenticationToken; |
... | ... | |
15 | 13 |
import javax.servlet.http.HttpServletRequest; |
16 | 14 |
import javax.servlet.http.HttpServletResponse; |
17 | 15 |
import java.io.IOException; |
18 |
import java.net.URLEncoder; |
|
19 | 16 |
import java.util.Base64; |
20 | 17 |
import java.util.Date; |
21 | 18 |
import java.util.regex.Matcher; |
... | ... | |
41 | 38 |
OIDCAuthenticationToken authOIDC = (OIDCAuthenticationToken) authentication; |
42 | 39 |
request.getSession().setAttribute(FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME, authOIDC.getUserInfo().getEmail()); |
43 | 40 |
|
44 |
JsonObject userInfo = new JsonObject(); |
|
45 |
|
|
46 |
if (authOIDC.getUserInfo().getSub() == null) |
|
47 |
userInfo.addProperty("sub", ""); |
|
48 |
else |
|
49 |
userInfo.addProperty("sub", URLEncoder.encode(authOIDC.getUserInfo().getSub(), "UTF-8")); |
|
50 |
|
|
51 |
|
|
52 |
if (authOIDC.getUserInfo().getName() != null) |
|
53 |
userInfo.addProperty("fullname", URLEncoder.encode(authOIDC.getUserInfo().getName(), "UTF-8")); |
|
54 |
|
|
55 |
if (authOIDC.getUserInfo().getGivenName() == null) |
|
56 |
userInfo.addProperty("firstname", ""); |
|
57 |
else |
|
58 |
userInfo.addProperty("firstname", URLEncoder.encode(authOIDC.getUserInfo().getGivenName(), "UTF-8") + ""); |
|
59 |
|
|
60 |
if (authOIDC.getUserInfo().getFamilyName() == null) |
|
61 |
userInfo.addProperty("lastname", ""); |
|
62 |
else |
|
63 |
userInfo.addProperty("lastname", URLEncoder.encode(authOIDC.getUserInfo().getFamilyName(), "UTF-8") + ""); |
|
64 |
|
|
65 |
userInfo.addProperty("email", authOIDC.getUserInfo().getEmail() + ""); |
|
66 |
// if (authOIDC.getUserInfo().getSource().getAsJsonArray("edu_person_entitlements") == null) |
|
67 |
// userInfo.addProperty("role", ""); |
|
68 |
// else |
|
69 |
// userInfo.addProperty("role", URLEncoder.encode(authOIDC.getUserInfo() |
|
70 |
// .getSource().getAsJsonArray("edu_person_entitlements").toString(), "UTF-8") + ""); |
|
71 |
|
|
72 |
|
|
73 | 41 |
Cookie accessToken = new Cookie("AccessToken", authOIDC.getAccessTokenValue()); |
74 | 42 |
String regex = "^([A-Za-z0-9-_=]+)\\.([A-Za-z0-9-_=]+)\\.?([A-Za-z0-9-_.+=]*)$"; |
75 | 43 |
Matcher matcher = Pattern.compile(regex).matcher(authOIDC.getAccessTokenValue()); |
... | ... | |
83 | 51 |
accessToken.setDomain(".openaire.eu"); |
84 | 52 |
accessToken.setPath("/"); |
85 | 53 |
|
86 |
|
|
87 |
Cookie openAIREUser = new Cookie("openAIREUser", URLEncoder.encode(new Gson().toJson(userInfo), "UTF-8")); |
|
88 |
openAIREUser.setMaxAge(accessToken.getMaxAge()); |
|
89 |
openAIREUser.setPath("/"); |
|
90 |
if (aai_mode.equalsIgnoreCase("production") || aai_mode.equalsIgnoreCase("beta")) |
|
91 |
openAIREUser.setDomain(".openaire.eu"); |
|
92 |
|
|
93 |
// if (frontDomain!=null) { |
|
94 |
// accessToken.setDomain(frontDomain); |
|
95 |
// // openAIREUser.setDomain(frontDomain); |
|
96 |
// } |
|
97 |
|
|
98 |
response.addCookie(openAIREUser); |
|
99 | 54 |
response.addCookie(accessToken); |
100 | 55 |
response.sendRedirect(frontEndURI); |
101 | 56 |
} |
Also available in: Unified diff
removed openAIREUser cookie