001
014
015 package com.liferay.portal.kernel.security.pacl.permission;
016
017 import com.liferay.portal.kernel.util.StringBundler;
018 import com.liferay.portal.kernel.util.StringPool;
019 import com.liferay.portal.kernel.util.StringUtil;
020 import com.liferay.portal.kernel.util.Validator;
021
022 import java.security.BasicPermission;
023
024
028 public class PortalRuntimePermission extends BasicPermission {
029
030 public static void checkDynamicQuery(Class<?> implClass) {
031 _pacl.checkDynamicQuery(implClass);
032 }
033
034 public static void checkExpandoBridge(String className) {
035 _pacl.checkExpandoBridge(className);
036 }
037
038 public static void checkGetBeanProperty(Class<?> clazz) {
039 _checkGetBeanProperty("portal", clazz, null);
040 }
041
042 public static void checkGetBeanProperty(Class<?> clazz, String property) {
043 _checkGetBeanProperty("portal", clazz, property);
044 }
045
046 public static void checkGetBeanProperty(
047 String servletContextName, Class<?> clazz) {
048
049 _checkGetBeanProperty(servletContextName, clazz, null);
050 }
051
052 public static void checkGetBeanProperty(
053 String servletContextName, Class<?> clazz, String property) {
054
055 _checkGetBeanProperty(servletContextName, clazz, property);
056 }
057
058 public static void checkGetClassLoader(String classLoaderReferenceId) {
059 _pacl.checkGetClassLoader(classLoaderReferenceId);
060 }
061
062 public static void checkPortletBagPool(String portletId) {
063 _pacl.checkPortletBagPool(portletId);
064 }
065
066 public static void checkSearchEngine(String searchEngineId) {
067 _pacl.checkSearchEngine(searchEngineId);
068 }
069
070 public static void checkSetBeanProperty(Class<?> clazz) {
071 _pacl.checkSetBeanProperty("portal", clazz, null);
072 }
073
074 public static void checkSetBeanProperty(Class<?> clazz, String property) {
075 _pacl.checkSetBeanProperty("portal", clazz, property);
076 }
077
078 public static void checkSetBeanProperty(
079 String servletContextName, Class<?> clazz) {
080
081 _pacl.checkSetBeanProperty(servletContextName, clazz, null);
082 }
083
084 public static void checkSetBeanProperty(
085 String servletContextName, Class<?> clazz, String property) {
086
087 _pacl.checkSetBeanProperty(servletContextName, clazz, property);
088 }
089
090 public static void checkThreadPoolExecutor(String name) {
091 _pacl.checkThreadPoolExecutor(name);
092 }
093
094 public PortalRuntimePermission(String name, String property) {
095 super(name);
096
097 _property = property;
098
099 _init();
100 }
101
102 public PortalRuntimePermission(
103 String name, String servletContextName, String subject) {
104
105 this(name, servletContextName, subject, null);
106 }
107
108 public PortalRuntimePermission(
109 String name, String servletContextName, String subject,
110 String property) {
111
112 super(_createLongName(name, servletContextName, subject));
113
114 _property = property;
115
116 _init();
117 }
118
119 @Override
120 public String getActions() {
121 return _property;
122 }
123
124 public String getProperty() {
125 return _property;
126 }
127
128 public String getServletContextName() {
129 return _servletContextName;
130 }
131
132 public String getShortName() {
133 return _shortName;
134 }
135
136 public String getSubject() {
137 return _subject;
138 }
139
140
143 private static void _checkGetBeanProperty(
144 String servletContextName, Class<?> clazz, String property) {
145
146 _pacl.checkGetBeanProperty(servletContextName, clazz, property);
147 }
148
149 private static String _createLongName(
150 String name, String servletContextName, String subject) {
151
152 StringBundler sb = new StringBundler(5);
153
154 sb.append(name);
155 sb.append(StringPool.POUND);
156
157 if (Validator.isNull(servletContextName)) {
158 sb.append("portal");
159 }
160 else {
161 sb.append(servletContextName);
162 }
163
164 sb.append(StringPool.POUND);
165 sb.append(subject);
166
167 return sb.toString();
168 }
169
170 private void _init() {
171 String[] nameParts = StringUtil.split(getName(), StringPool.POUND);
172
173 if (nameParts.length != 3) {
174 throw new IllegalArgumentException(
175 "Name " + getName() + " does not follow the format " +
176 "[name]#[servletContextName]#[subject]");
177 }
178
179 _shortName = nameParts[0];
180 _servletContextName = nameParts[1];
181 _subject = nameParts[2];
182 }
183
184 private static PACL _pacl = new NoPACL();
185
186 private String _property;
187 private String _servletContextName;
188 private String _shortName;
189 private String _subject;
190
191 private static class NoPACL implements PACL {
192
193 @Override
194 public void checkDynamicQuery(Class<?> implClass) {
195 }
196
197 @Override
198 public void checkExpandoBridge(String className) {
199 }
200
201 @Override
202 public void checkGetBeanProperty(
203 String servletContextName, Class<?> clazz, String property) {
204 }
205
206 @Override
207 public void checkGetClassLoader(String classLoaderReferenceId) {
208 }
209
210 @Override
211 public void checkPortletBagPool(String portletId) {
212 }
213
214 @Override
215 public void checkSearchEngine(String searchEngineId) {
216 }
217
218 @Override
219 public void checkSetBeanProperty(
220 String servletContextName, Class<?> clazz, String property) {
221 }
222
223 @Override
224 public void checkThreadPoolExecutor(String name) {
225 }
226
227 }
228
229 public static interface PACL {
230
231 public void checkDynamicQuery(Class<?> implClass);
232
233 public void checkExpandoBridge(String className);
234
235 public void checkGetBeanProperty(
236 String servletContextName, Class<?> clazz, String property);
237
238 public void checkGetClassLoader(String classLoaderReferenceId);
239
240 public void checkPortletBagPool(String portletId);
241
242 public void checkSearchEngine(String searchEngineId);
243
244 public void checkSetBeanProperty(
245 String servletContextName, Class<?> clazz, String property);
246
247 public void checkThreadPoolExecutor(String name);
248
249 }
250
251 }