|
|
@@ -44,246 +44,259 @@ import java.util.*;
|
|
|
*/
|
|
|
public class SSOInterceptor extends AbstractSSOInterceptor {
|
|
|
|
|
|
- private static final Logger logger = Logger.getLogger(SSOInterceptor.class);
|
|
|
+ private static final Logger logger = Logger.getLogger(SSOInterceptor.class);
|
|
|
|
|
|
- @Autowired
|
|
|
- private UserService userService;
|
|
|
- @Autowired
|
|
|
- private ResourceItemDao resourceItemDao;
|
|
|
- @Autowired
|
|
|
- private SigninLogService signinLogService;
|
|
|
- @Value("#{sys.profile}")
|
|
|
- private String profile;
|
|
|
+ @Autowired
|
|
|
+ private UserService userService;
|
|
|
+ @Autowired
|
|
|
+ private ResourceItemDao resourceItemDao;
|
|
|
+ @Autowired
|
|
|
+ private SigninLogService signinLogService;
|
|
|
+ @Value("#{sys.profile}")
|
|
|
+ private String profile;
|
|
|
|
|
|
- private final DeviceResolver deviceResolver = new LiteDeviceResolver();
|
|
|
+ private final DeviceResolver deviceResolver = new LiteDeviceResolver();
|
|
|
|
|
|
- private HashMap<String, Collection<ConfigAttribute>> resourceMap;
|
|
|
- private HashMap<Long, Collection<GrantedAuthority>> authorities;
|
|
|
+ private HashMap<String, Collection<ConfigAttribute>> resourceMap;
|
|
|
+ private HashMap<Long, Collection<GrantedAuthority>> authorities;
|
|
|
|
|
|
- private User getUserByToken(SSOToken token) {
|
|
|
- User authedUser = null;
|
|
|
- if (token.getData() != null) {
|
|
|
- com.uas.account.entity.User tokenUser = FlexJsonUtils.fromJson(token.getData(), com.uas.account.entity.User.class);
|
|
|
- if (!StringUtils.isEmpty(tokenUser.getDialectUID())) {
|
|
|
- // dialectUID表示client系统自己的唯一标识,比如user_uu,手机号没设置的情况下使用
|
|
|
- authedUser = userService.findUserByUserUU(Long.parseLong(tokenUser.getDialectUID()));
|
|
|
- } else if (!StringUtils.isEmpty(tokenUser.getUid())) {
|
|
|
- // UID表示所有系统公认的唯一标识,这里统一使用手机号
|
|
|
- authedUser = userService.findUserByUserTel(tokenUser.getUid());
|
|
|
- } else {
|
|
|
- logger.error(String.format("invalid user %s, please set uid or dialectUID", tokenUser.getName()));
|
|
|
- }
|
|
|
- if (authedUser != null && authedUser.getEnterprises() != null) {
|
|
|
- // 企业资料在client系统自己的唯一标识,比如en_uu
|
|
|
- if (tokenUser.getSpaceDialectUID() != null) {
|
|
|
- authedUser.setCurrentEnterprise(Long.parseLong(tokenUser.getSpaceDialectUID()));
|
|
|
- } else if (tokenUser.getSpaceUID() != null) {
|
|
|
- for (Enterprise enterprise : authedUser.getEnterprises()) {
|
|
|
- // 企业资料在所有系统公认的唯一标识,这里使用商业登记证号
|
|
|
- if (tokenUser.getSpaceUID().equals(enterprise.getEnBussinessCode())) {
|
|
|
- authedUser.setEnterprise(enterprise);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return authedUser;
|
|
|
- }
|
|
|
+ private User getUserByToken(SSOToken token) {
|
|
|
+ User authedUser = null;
|
|
|
+ if (token.getData() != null) {
|
|
|
+ com.uas.account.entity.User tokenUser = FlexJsonUtils.fromJson(token.getData(), com.uas.account.entity.User.class);
|
|
|
+ if (!StringUtils.isEmpty(tokenUser.getDialectUID())) {
|
|
|
+ // dialectUID表示client系统自己的唯一标识,比如user_uu,手机号没设置的情况下使用
|
|
|
+ authedUser = userService.findUserByUserUU(Long.parseLong(tokenUser.getDialectUID()));
|
|
|
+ } else if (!StringUtils.isEmpty(tokenUser.getUid())) {
|
|
|
+ // UID表示所有系统公认的唯一标识,这里统一使用手机号
|
|
|
+ authedUser = userService.findUserByUserTel(tokenUser.getUid());
|
|
|
+ } else {
|
|
|
+ logger.error(String.format("invalid user %s, please set uid or dialectUID", tokenUser.getName()));
|
|
|
+ }
|
|
|
+ if (authedUser != null && authedUser.getEnterprises() != null) {
|
|
|
+ // 企业资料在client系统自己的唯一标识,比如en_uu
|
|
|
+ if (tokenUser.getSpaceDialectUID() != null) {
|
|
|
+ authedUser.setCurrentEnterprise(Long.parseLong(tokenUser.getSpaceDialectUID()));
|
|
|
+ } else if (tokenUser.getSpaceUID() != null) {
|
|
|
+ for (Enterprise enterprise : authedUser.getEnterprises()) {
|
|
|
+ // 企业资料在所有系统公认的唯一标识,这里使用商业登记证号
|
|
|
+ if (tokenUser.getSpaceUID().equals(enterprise.getEnBussinessCode())) {
|
|
|
+ authedUser.setEnterprise(enterprise);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return authedUser;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- protected boolean onAuthenticateFailed(HttpServletRequest request, HttpServletResponse response) {
|
|
|
- SystemSession.clear();
|
|
|
- if (request.getRequestURI().endsWith(PathConstant.AUTHENTICATION_URL)) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- response.setStatus(HttpStatus.UNAUTHORIZED.value());
|
|
|
- if (!isRedirectAble(request)) {
|
|
|
- try {
|
|
|
- printJson(response, new ModelMap("loginUrl", getLoginPage(request, response)));
|
|
|
- } catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ protected boolean onAuthenticateFailed(HttpServletRequest request, HttpServletResponse response) {
|
|
|
+ SystemSession.clear();
|
|
|
+ if (request.getRequestURI().endsWith(PathConstant.AUTHENTICATION_URL)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ response.setStatus(HttpStatus.UNAUTHORIZED.value());
|
|
|
+ if (!isRedirectAble(request)) {
|
|
|
+ try {
|
|
|
+ printJson(response, new ModelMap("loginUrl", getLoginPage(request, response)));
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 输出json格式
|
|
|
- *
|
|
|
- * @param obj
|
|
|
- * @throws IOException
|
|
|
- */
|
|
|
- protected void printJson(HttpServletResponse response, Object obj) throws IOException {
|
|
|
- response.addHeader("Content-Type", "application/json; charset=UTF-8");
|
|
|
- PrintWriter printWriter = response.getWriter();
|
|
|
- printWriter.append(FlexJsonUtils.toJson(obj));
|
|
|
- printWriter.flush();
|
|
|
- printWriter.close();
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 输出json格式
|
|
|
+ *
|
|
|
+ * @param obj
|
|
|
+ * @throws IOException
|
|
|
+ */
|
|
|
+ protected void printJson(HttpServletResponse response, Object obj) throws IOException {
|
|
|
+ response.addHeader("Content-Type", "application/json; charset=UTF-8");
|
|
|
+ PrintWriter printWriter = response.getWriter();
|
|
|
+ printWriter.append(FlexJsonUtils.toJson(obj));
|
|
|
+ printWriter.flush();
|
|
|
+ printWriter.close();
|
|
|
+ }
|
|
|
|
|
|
- private String getLoginPage(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
|
- request.getSession().setAttribute(SSOConfig.SSOReferer, request.getHeader("Referer"));
|
|
|
- SSOHelper.clearLogin(request, response);
|
|
|
- String redirectUrl = SSOHelper.getRedirectRefererLoginUrl(request);
|
|
|
- /*boolean cross = SSOHelper.isCrossDomain(request);
|
|
|
+ private String getLoginPage(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
|
+ request.getSession().setAttribute(SSOConfig.SSOReferer, request.getHeader("Referer"));
|
|
|
+ SSOHelper.clearLogin(request, response);
|
|
|
+ String redirectUrl;
|
|
|
+ if ("prod".equals(profile)) {
|
|
|
+ redirectUrl = (SSOHelper.getRedirectLoginUrl(request, "https://www.usoftmall.com" + request.getRequestURI()));
|
|
|
+ } else {
|
|
|
+ if (null == request.getParameter("returnURL") || "".equals(request.getParameter("returnURL"))) {
|
|
|
+ redirectUrl = (SSOHelper.getRedirectLoginUrl(request,"http://192.168.253.12:23400" + request.getRequestURI()));
|
|
|
+ } else {
|
|
|
+ redirectUrl = (SSOHelper.getRedirectLoginUrl(request, request.getParameter("returnURL")));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //String redirectUrl = SSOHelper.getRedirectRefererLoginUrl(request);
|
|
|
+ /*boolean cross = SSOHelper.isCrossDomain(request);
|
|
|
if (cross) {
|
|
|
// 跨域代理界面
|
|
|
redirectUrl = request.getContextPath() + "/login/proxy";
|
|
|
}*/
|
|
|
- return redirectUrl;
|
|
|
- }
|
|
|
+ return redirectUrl;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- protected void onAuthenticateSuccess(HttpServletRequest request, HttpServletResponse response) {
|
|
|
- User user = (User) request.getSession().getAttribute("user");
|
|
|
- SSOToken token = SSOHelper.attrToken(request);
|
|
|
- // cookie变化的情况下,session可能还未变化
|
|
|
- if (user == null || (user.getUserTel() != null && !token.getUid().equals(user.getUserTel()))) {
|
|
|
- user = getUserByToken(token);
|
|
|
- if (user != null) {
|
|
|
- user.setIp(AgentUtils.getIp(request));
|
|
|
- request.getSession().setAttribute("user", user);
|
|
|
- setGrantedAuthorities(user);
|
|
|
- }
|
|
|
- }
|
|
|
- if (user != null) {
|
|
|
- SystemSession.setUser(user);
|
|
|
- accessDecision(request, user);
|
|
|
- }
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ protected void onAuthenticateSuccess(HttpServletRequest request, HttpServletResponse response) {
|
|
|
+ User user = (User) request.getSession().getAttribute("user");
|
|
|
+ SSOToken token = SSOHelper.attrToken(request);
|
|
|
+ // cookie变化的情况下,session可能还未变化
|
|
|
+ if (user == null || (user.getUserTel() != null && !token.getUid().equals(user.getUserTel()))) {
|
|
|
+ user = getUserByToken(token);
|
|
|
+ if (user != null) {
|
|
|
+ user.setIp(AgentUtils.getIp(request));
|
|
|
+ request.getSession().setAttribute("user", user);
|
|
|
+ setGrantedAuthorities(user);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (user != null) {
|
|
|
+ SystemSession.setUser(user);
|
|
|
+ accessDecision(request, user);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 权限验证
|
|
|
- */
|
|
|
- private void accessDecision(HttpServletRequest request, User user) {
|
|
|
- Collection<ConfigAttribute> configAttributes = getAttributes(request);
|
|
|
- if (null == configAttributes || configAttributes.size() == 0 || user.isSys()) {
|
|
|
- return;
|
|
|
- }
|
|
|
- Iterator<ConfigAttribute> iterator = configAttributes.iterator();
|
|
|
- String needPermission = null;
|
|
|
- if (!authorities.containsKey(user.getUserUU())) {
|
|
|
- setGrantedAuthorities(user);
|
|
|
- }
|
|
|
- Collection<GrantedAuthority> userAuthorities = authorities.get(user.getUserUU());
|
|
|
- while (iterator.hasNext()) {
|
|
|
- ConfigAttribute configAttribute = iterator.next();
|
|
|
- needPermission = configAttribute.getAttribute();
|
|
|
- if (userAuthorities != null) {
|
|
|
- for (GrantedAuthority ga : userAuthorities) {
|
|
|
- if (needPermission.equals(ga.getAuthority())) {
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (needPermission != null){
|
|
|
- return;
|
|
|
+ /**
|
|
|
+ * 权限验证
|
|
|
+ */
|
|
|
+ private void accessDecision(HttpServletRequest request, User user) {
|
|
|
+ Collection<ConfigAttribute> configAttributes = getAttributes(request);
|
|
|
+ if (null == configAttributes || configAttributes.size() == 0 || user.isSys()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Iterator<ConfigAttribute> iterator = configAttributes.iterator();
|
|
|
+ String needPermission = null;
|
|
|
+ if (!authorities.containsKey(user.getUserUU())) {
|
|
|
+ setGrantedAuthorities(user);
|
|
|
+ }
|
|
|
+ Collection<GrantedAuthority> userAuthorities = authorities.get(user.getUserUU());
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ ConfigAttribute configAttribute = iterator.next();
|
|
|
+ needPermission = configAttribute.getAttribute();
|
|
|
+ if (userAuthorities != null) {
|
|
|
+ for (GrantedAuthority ga : userAuthorities) {
|
|
|
+ if (needPermission.equals(ga.getAuthority())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (needPermission != null) {
|
|
|
+ return;
|
|
|
// throw new AccessDeniedException("无法访问,没有 " + needPermission + " 权限!");
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
|
|
- try {
|
|
|
- super.afterCompletion(request, response, handler, ex);
|
|
|
- } finally {
|
|
|
- SystemSession.clear();
|
|
|
- }
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
|
|
+ try {
|
|
|
+ super.afterCompletion(request, response, handler, ex);
|
|
|
+ } finally {
|
|
|
+ SystemSession.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 加载资源,初始化资源变量
|
|
|
- *
|
|
|
- */
|
|
|
- private void loadResourceDefine() {
|
|
|
- if (resourceMap == null) {
|
|
|
- resourceMap = new HashMap<String, Collection<ConfigAttribute>>();
|
|
|
- List<ResourceItem> resources = resourceItemDao.findAll();
|
|
|
- for (ResourceItem resource : resources) {
|
|
|
- Collection<ConfigAttribute> configAttributes = new ArrayList<ConfigAttribute>();
|
|
|
- ConfigAttribute configAttribute = new SecurityConfig(resource.getName());
|
|
|
- configAttributes.add(configAttribute);
|
|
|
- resourceMap.put(resource.getMethod() + ":" + resource.getUrl(), configAttributes);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 加载资源,初始化资源变量
|
|
|
+ */
|
|
|
+ private void loadResourceDefine() {
|
|
|
+ if (resourceMap == null) {
|
|
|
+ resourceMap = new HashMap<String, Collection<ConfigAttribute>>();
|
|
|
+ List<ResourceItem> resources = resourceItemDao.findAll();
|
|
|
+ for (ResourceItem resource : resources) {
|
|
|
+ Collection<ConfigAttribute> configAttributes = new ArrayList<ConfigAttribute>();
|
|
|
+ ConfigAttribute configAttribute = new SecurityConfig(resource.getName());
|
|
|
+ configAttributes.add(configAttribute);
|
|
|
+ resourceMap.put(resource.getMethod() + ":" + resource.getUrl(), configAttributes);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 根据路径获取访问权限的集合接口
|
|
|
- *
|
|
|
- * @param request
|
|
|
- * @return
|
|
|
- * @throws IllegalArgumentException
|
|
|
- */
|
|
|
- public Collection<ConfigAttribute> getAttributes(HttpServletRequest request) throws IllegalArgumentException {
|
|
|
- if (resourceMap == null)
|
|
|
- loadResourceDefine();
|
|
|
+ /**
|
|
|
+ * 根据路径获取访问权限的集合接口
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ * @throws IllegalArgumentException
|
|
|
+ */
|
|
|
+ public Collection<ConfigAttribute> getAttributes(HttpServletRequest request) throws IllegalArgumentException {
|
|
|
+ if (resourceMap == null)
|
|
|
+ loadResourceDefine();
|
|
|
|
|
|
- for (Iterator<String> iter = resourceMap.keySet().iterator(); iter.hasNext();) {
|
|
|
- String resourceKey = iter.next();
|
|
|
- String[] resourceParam = resourceKey.split(":");
|
|
|
- String resourceMethod = resourceParam[0];
|
|
|
- String resourceUrl = resourceParam[1];
|
|
|
- AntPathRequestMatcher matcher = new AntPathRequestMatcher(resourceUrl);
|
|
|
- if (null != resourceUrl && request.getMethod().equals(resourceMethod) && matcher.matches(request)) {
|
|
|
- return resourceMap.get(resourceKey);
|
|
|
- }
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
+ for (Iterator<String> iter = resourceMap.keySet().iterator(); iter.hasNext(); ) {
|
|
|
+ String resourceKey = iter.next();
|
|
|
+ String[] resourceParam = resourceKey.split(":");
|
|
|
+ String resourceMethod = resourceParam[0];
|
|
|
+ String resourceUrl = resourceParam[1];
|
|
|
+ AntPathRequestMatcher matcher = new AntPathRequestMatcher(resourceUrl);
|
|
|
+ if (null != resourceUrl && request.getMethod().equals(resourceMethod) && matcher.matches(request)) {
|
|
|
+ return resourceMap.get(resourceKey);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
- private void setGrantedAuthorities(User user) {
|
|
|
- Set<GrantedAuthority> authSet = new HashSet<GrantedAuthority>();
|
|
|
- user.setCurrentEnterpriseRoles();
|
|
|
- Set<Role> roles = user.getRoles();
|
|
|
- if (!CollectionUtils.isEmpty(roles)) {
|
|
|
- for (Role role : roles) {
|
|
|
- if (role.isSys()) {// 超级账号
|
|
|
- user.setIssys(Constant.YES);
|
|
|
- break;
|
|
|
- }
|
|
|
- Set<ResourceItem> resourceItems = role.getResourceItems();
|
|
|
- if (!CollectionUtils.isEmpty(resourceItems)) {
|
|
|
- for (ResourceItem res : resourceItems) {
|
|
|
- authSet.add(new SimpleGrantedAuthority(res.getName()));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (authorities == null) {
|
|
|
- authorities = new HashMap<Long, Collection<GrantedAuthority>>();
|
|
|
- }
|
|
|
- authorities.put(user.getUserUU(), authSet);
|
|
|
- }
|
|
|
+ private void setGrantedAuthorities(User user) {
|
|
|
+ Set<GrantedAuthority> authSet = new HashSet<GrantedAuthority>();
|
|
|
+ user.setCurrentEnterpriseRoles();
|
|
|
+ Set<Role> roles = user.getRoles();
|
|
|
+ if (!CollectionUtils.isEmpty(roles)) {
|
|
|
+ for (Role role : roles) {
|
|
|
+ if (role.isSys()) {// 超级账号
|
|
|
+ user.setIssys(Constant.YES);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ Set<ResourceItem> resourceItems = role.getResourceItems();
|
|
|
+ if (!CollectionUtils.isEmpty(resourceItems)) {
|
|
|
+ for (ResourceItem res : resourceItems) {
|
|
|
+ authSet.add(new SimpleGrantedAuthority(res.getName()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (authorities == null) {
|
|
|
+ authorities = new HashMap<Long, Collection<GrantedAuthority>>();
|
|
|
+ }
|
|
|
+ authorities.put(user.getUserUU(), authSet);
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- protected void sendRedirect(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
|
- boolean cross = SSOHelper.isCrossDomain(request);
|
|
|
- if (cross) {
|
|
|
- request.getSession().setAttribute("SSOReferer", request.getRequestURL());
|
|
|
- if ("prod".equals(profile)){
|
|
|
- response.sendRedirect(SSOHelper.getRedirectLoginUrl(request, "https://www.usoftmall.com"+request.getRequestURI()));
|
|
|
- }else{
|
|
|
- response.sendRedirect(SSOHelper.getRedirectLoginUrl(request, request.getParameter("returnURL"))+ "&baseUrl=http://192.168.253.121:3000/login/other" );
|
|
|
- }
|
|
|
- } else {
|
|
|
- SSOHelper.clearRedirectLogin(request, response);
|
|
|
- }
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ protected void sendRedirect(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
|
+ boolean cross = SSOHelper.isCrossDomain(request);
|
|
|
+ if (cross) {
|
|
|
+ request.getSession().setAttribute("SSOReferer", request.getRequestURL());
|
|
|
+ if ("prod".equals(profile)) {
|
|
|
+ response.sendRedirect(SSOHelper.getRedirectLoginUrl(request, "https://www.usoftmall.com" + request.getRequestURI()));
|
|
|
+ } else {
|
|
|
+ if (null == request.getParameter("returnURL") || "".equals(request.getParameter("returnURL"))) {
|
|
|
+ response.sendRedirect(SSOHelper.getRedirectLoginUrl(request,"http://192.168.253.12:23400" + request.getRequestURI()));
|
|
|
+ } else {
|
|
|
+ response.sendRedirect(SSOHelper.getRedirectLoginUrl(request, request.getParameter("returnURL")));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ SSOHelper.clearRedirectLogin(request, response);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- private SitePreference getDefaultSitePreferenceForDevice(Device device) {
|
|
|
- if (device == null) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- if (device.isMobile()) {
|
|
|
- return SitePreference.MOBILE;
|
|
|
- }
|
|
|
- if (device.isTablet()) {
|
|
|
- return SitePreference.TABLET;
|
|
|
- }
|
|
|
- return SitePreference.NORMAL;
|
|
|
- }
|
|
|
+ private SitePreference getDefaultSitePreferenceForDevice(Device device) {
|
|
|
+ if (device == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ if (device.isMobile()) {
|
|
|
+ return SitePreference.MOBILE;
|
|
|
+ }
|
|
|
+ if (device.isTablet()) {
|
|
|
+ return SitePreference.TABLET;
|
|
|
+ }
|
|
|
+ return SitePreference.NORMAL;
|
|
|
+ }
|
|
|
|
|
|
}
|