1
2
3
4
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
23
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
32 @Context
33 protected IDIFContext context;
34
35
36 @InjectMessages
37 protected Map<String, String> messages;
38
39
40
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 }