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 public static interface PACL {
141
142 public void checkDynamicQuery(Class<?> implClass);
143
144 public void checkExpandoBridge(String className);
145
146 public void checkGetBeanProperty(
147 String servletContextName, Class<?> clazz, String property);
148
149 public void checkGetClassLoader(String classLoaderReferenceId);
150
151 public void checkPortletBagPool(String portletId);
152
153 public void checkSearchEngine(String searchEngineId);
154
155 public void checkSetBeanProperty(
156 String servletContextName, Class<?> clazz, String property);
157
158 public void checkThreadPoolExecutor(String name);
159
160 }
161
162
165 private static void _checkGetBeanProperty(
166 String servletContextName, Class<?> clazz, String property) {
167
168 _pacl.checkGetBeanProperty(servletContextName, clazz, property);
169 }
170
171 private static String _createLongName(
172 String name, String servletContextName, String subject) {
173
174 StringBundler sb = new StringBundler(5);
175
176 sb.append(name);
177 sb.append(StringPool.POUND);
178
179 if (Validator.isNull(servletContextName)) {
180 sb.append("portal");
181 }
182 else {
183 sb.append(servletContextName);
184 }
185
186 sb.append(StringPool.POUND);
187 sb.append(subject);
188
189 return sb.toString();
190 }
191
192 private void _init() {
193 String[] nameParts = StringUtil.split(getName(), StringPool.POUND);
194
195 if (nameParts.length != 3) {
196 throw new IllegalArgumentException(
197 "Name " + getName() + " does not follow the format " +
198 "[name]#[servletContextName]#[subject]");
199 }
200
201 _shortName = nameParts[0];
202 _servletContextName = nameParts[1];
203 _subject = nameParts[2];
204 }
205
206 private static PACL _pacl = new NoPACL();
207
208 private String _property;
209 private String _servletContextName;
210 private String _shortName;
211 private String _subject;
212
213 private static class NoPACL implements PACL {
214
215 @Override
216 public void checkDynamicQuery(Class<?> implClass) {
217 }
218
219 @Override
220 public void checkExpandoBridge(String className) {
221 }
222
223 @Override
224 public void checkGetBeanProperty(
225 String servletContextName, Class<?> clazz, String property) {
226 }
227
228 @Override
229 public void checkGetClassLoader(String classLoaderReferenceId) {
230 }
231
232 @Override
233 public void checkPortletBagPool(String portletId) {
234 }
235
236 @Override
237 public void checkSearchEngine(String searchEngineId) {
238 }
239
240 @Override
241 public void checkSetBeanProperty(
242 String servletContextName, Class<?> clazz, String property) {
243 }
244
245 @Override
246 public void checkThreadPoolExecutor(String name) {
247 }
248
249 }
250
251 }