package com.mossle.security.perm;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.tagext.Tag;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class PermissionTag extends BodyTagSupport {
private static final long serialVersionUID = 0L;
private String permission;
public int doStartTag() throws JspException {
boolean authorized = getPermissionChecker().isAuthorized(permission);
if (!authorized) {
return Tag.SKIP_BODY;
}
return Tag.EVAL_BODY_INCLUDE;
}
public void setPermission(String permission) {
this.permission = permission;
}
public PermissionChecker getPermissionChecker() {
ApplicationContext ctx = WebApplicationContextUtils
.getWebApplicationContext(pageContext.getServletContext());
return (PermissionChecker) ctx.getBean("permissionChecker");
}
}