1 package org.openecomp.portalsdk.core.service;
3 import java.util.ArrayList;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpSession;
10 import org.openecomp.portalsdk.core.domain.RoleFunction;
11 import org.openecomp.portalsdk.core.domain.User;
12 import org.openecomp.portalsdk.core.exception.SessionExpiredException;
13 import org.openecomp.portalsdk.core.util.SystemProperties;
14 import org.openecomp.portalsdk.core.web.support.AppUtils;
15 import org.openecomp.portalsdk.core.web.support.UserUtils;
16 import org.springframework.beans.factory.annotation.Autowired;
18 public class UrlAccessCentalizedImpl implements UrlAccessService {
21 AppService appService;
24 RoleService roleService;
28 public boolean isUrlAccessible(HttpServletRequest request, String currentUrl) {
30 boolean isAccessible = false;
31 User user = UserUtils.getUserSession(request);
34 HttpSession session = AppUtils.getSession(request);
36 if (session == null) {
37 throw new SessionExpiredException();
40 @SuppressWarnings("unchecked")
41 List<RoleFunction> allRoleFunctionsList = (List<RoleFunction>) session.getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTION_LIST));
43 List<String> allUrls = new ArrayList<String>();
45 for (int i = 0; i < allRoleFunctionsList.size(); i++) {
46 if (allRoleFunctionsList.get(i).getCode() != null && ((String) allRoleFunctionsList.get(i).getCode()).substring(0, 4).toUpperCase().equals("url_".toUpperCase())) {
47 String functionCd = ((String) allRoleFunctionsList.get(i).getCode()).substring(4).toUpperCase();
48 allUrls.add(functionCd);
52 @SuppressWarnings("unchecked")
53 Set<RoleFunction> roleFunction = UserUtils.getRoleFunctions(request);
54 List list = new ArrayList<>(roleFunction);
55 List<String> UserURLlist = new ArrayList<String>();
57 if (list != null && list.size() > 0) {
58 for (int i = 0; i < list.size(); i++) {
59 if (list.get(i) != null && ((String) list.get(i)).substring(0, 4).toUpperCase().equals("url_".toUpperCase())) {
60 String functionCd = ((String) list.get(i)).substring(4).toUpperCase();
61 UserURLlist.add(functionCd);
66 if((!UserURLlist.contains(currentUrl) && !allUrls.contains(currentUrl)) || (UserURLlist.contains(currentUrl) && allUrls.contains(currentUrl)))