1 25 26 package org.snipsnap.interceptor.custom; 27 28 import org.radeox.util.logging.Logger; 29 import org.snipsnap.app.Application; 30 import org.snipsnap.interceptor.InterceptorSupport; 31 import org.snipsnap.interceptor.Invocation; 32 import org.snipsnap.user.Roles; 33 import org.snipsnap.user.Security; 34 import org.snipsnap.user.User; 35 36 import java.security.GeneralSecurityException ; 37 38 public class SnipSpaceACLInterceptor extends InterceptorSupport { 39 private Roles roles; 40 41 public SnipSpaceACLInterceptor() { 42 super(); 43 roles = new Roles(); 44 roles.add("Admin"); 46 } 47 48 public Object invoke(Invocation invocation) throws Throwable { 49 String method = invocation.getMethod().getName(); 50 if(method.equals("remove")) { 51 User user = Application.get().getUser(); 52 if (!Security.hasRoles(user, null, roles)) { 53 Logger.debug("SECURITY EXCEPTION"); 54 throw new GeneralSecurityException ("Not allowed to remove."); 55 } 56 57 } 58 return invocation.next(); 59 } 60 } 61 | Popular Tags |