View Javadoc

1   /**
2    * - Digitalis Internal Framework v2.0 - (C) 2007, Digitalis Informatica. Distribuicao e Gestao de Informatica, Lda.
3    * Estrada de Paco de Arcos num.9 - Piso -1 2780-666 Paco de Arcos Telefone: (351) 21 4408990 Fax: (351) 21 4408999
4    * http://www.digitalis.pt
5    */
6   package pt.digitalis.dif.presentation.entities.system.error;
7   
8   import java.util.Map;
9   
10  import pt.digitalis.dif.controller.ExceptionHandlers;
11  import pt.digitalis.dif.controller.interfaces.IDIFContext;
12  import pt.digitalis.dif.dem.annotations.entities.StageDefinition;
13  import pt.digitalis.dif.dem.annotations.stage.Context;
14  import pt.digitalis.dif.dem.annotations.stage.ExceptionHandler;
15  import pt.digitalis.dif.dem.annotations.stage.Execute;
16  import pt.digitalis.dif.dem.annotations.stage.InjectMessages;
17  import pt.digitalis.dif.dem.annotations.stage.View;
18  import pt.digitalis.dif.dem.annotations.stage.controller.DispatcherMode;
19  import pt.digitalis.dif.exception.security.IdentityManagerException;
20  
21  /**
22   * @author Galaio da Silva <a href="mailto:jgalaio@digitalis.pt">jgalaio@digitalis.pt</a><br/>
23   * @created Aug 11, 2010
24   */
25  @StageDefinition(name = "LDAP Error Page", service = "errorhandlingservice")
26  @ExceptionHandler(exceptions = "pt.digitalis.dif.exception.security.IdentityManagerException")
27  @View(target = "internal/errorHandlerView.jsp")
28  @DispatcherMode(authenticate = false, authorize = false)
29  public class IdentitityManagerErrorStage extends AbstractErrorHandler {
30  
31      /** the current stage context */
32      @Context
33      protected IDIFContext context;
34  
35      /** the current stage messages */
36      @InjectMessages
37      protected Map<String, String> messages;
38  
39      /**
40       * Execute Method
41       */
42      @Execute
43      protected void execute()
44      {
45          Exception exception = (Exception) context.getRequest().getAttribute(
46                  ExceptionHandlers.RAISED_EXCEPTION_ATTRIBUTE);
47  
48          IdentityManagerException identityException = null;
49  
50          exception = getExceptionWithinStack(IdentityManagerException.class, exception);
51  
52          if (exception != null)
53          {
54              identityException = (IdentityManagerException) exception;
55  
56              if (identityException.isReadOnlyException())
57              {
58                  this.context.addStageResult("messageTitle", messages.get("messageTitle"));
59                  this.context.addStageResult("messageContent", messages.get("messageContent"));
60              }
61          }
62      }
63  }