View Javadoc

1   package org.saf.struts.taglib;
2   
3   import org.apache.struts.taglib.logic.ConditionalTagBase;
4   
5   import org.saf.struts.exception.SafAuthorizationException;
6   import org.saf.struts.util.SafUtils;
7   
8   import javax.servlet.http.HttpServletRequest;
9   import javax.servlet.jsp.JspException;
10  
11  
12  /***
13   * Checks if a user is authorized to see the body content of this tag.
14   *
15   * @author Wim Tobback
16   * @version 1.0
17   *
18   * @since 1.0
19   */
20  public class AuthorizedTag extends ConditionalTagBase {
21      private static final long serialVersionUID = 1L;
22      private String defId;
23  
24      /***
25       * @param defId The defId to set.
26       */
27      public void setDefId(String defId) {
28          this.defId = defId;
29      }
30  
31      /***
32       * @see org.apache.struts.taglib.logic.ConditionalTagBase#condition()
33       */
34      protected boolean condition() throws JspException {
35          return condition(true);
36      }
37  
38      protected boolean condition(boolean desired) throws JspException {
39          HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
40          boolean authorized = false;
41  
42          try {
43              authorized = SafUtils.isAuthorized(request, defId);
44          } catch (SafAuthorizationException e) {
45              throw new JspException(e);
46          }
47  
48          return (authorized == desired);
49      }
50  }