1
22
23 package com.liferay.portal.service.impl;
24
25 import com.liferay.portal.PortalException;
26 import com.liferay.portal.SystemException;
27 import com.liferay.portal.kernel.security.permission.PermissionChecker;
28 import com.liferay.portal.kernel.util.GetterUtil;
29 import com.liferay.portal.kernel.util.Validator;
30 import com.liferay.portal.model.User;
31 import com.liferay.portal.security.auth.CompanyThreadLocal;
32 import com.liferay.portal.security.auth.PrincipalException;
33 import com.liferay.portal.security.auth.PrincipalThreadLocal;
34 import com.liferay.portal.security.permission.PermissionThreadLocal;
35 import com.liferay.portal.service.UserLocalServiceUtil;
36
37
43 public class PrincipalBean {
44
45 public static final String JRUN_ANONYMOUS = "anonymus-guest";
46
47 public static final String ORACLE_ANONYMOUS = "guest";
48
49 public static final String SUN_ANONYMOUS = "ANONYMOUS";
50
51 public static final String WEBLOGIC_ANONYMOUS = "<anonymous>";
52
53 public static final String[] ANONYMOUS_NAMES = {
54 JRUN_ANONYMOUS, ORACLE_ANONYMOUS, SUN_ANONYMOUS, WEBLOGIC_ANONYMOUS
55 };
56
57 public long getGuestOrUserId() throws PrincipalException {
58 try {
59 return getUserId();
60 }
61 catch (PrincipalException pe) {
62 try {
63 return UserLocalServiceUtil.getDefaultUserId(
64 CompanyThreadLocal.getCompanyId());
65 }
66 catch (Exception e) {
67 throw pe;
68 }
69 }
70 }
71
72 public User getUser() throws PortalException, SystemException {
73 return UserLocalServiceUtil.getUserById(getUserId());
74 }
75
76 public long getUserId() throws PrincipalException {
77 String name = PrincipalThreadLocal.getName();
78
79 if (name == null) {
80 throw new PrincipalException();
81 }
82
83 if (Validator.isNull(name)) {
84 throw new PrincipalException("Principal cannot be null");
85 }
86 else {
87 for (int i = 0; i < ANONYMOUS_NAMES.length; i++) {
88 if (name.equalsIgnoreCase(ANONYMOUS_NAMES[i])) {
89 throw new PrincipalException(
90 "Principal cannot be " + ANONYMOUS_NAMES[i]);
91 }
92 }
93 }
94
95 return GetterUtil.getLong(name);
96 }
97
98 public PermissionChecker getPermissionChecker() throws PrincipalException {
99 PermissionChecker permissionChecker =
100 PermissionThreadLocal.getPermissionChecker();
101
102 if (permissionChecker == null) {
103 throw new PrincipalException("PermissionChecker not initialized");
104 }
105
106 return permissionChecker;
107 }
108
109 }