1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.logging;
35
36 import javax.servlet.http.HttpServletRequest;
37
38 import info.magnolia.cms.core.ItemType;
39 import info.magnolia.cms.security.auth.login.FormLogin;
40 import info.magnolia.cms.security.auth.login.LoginResult;
41 import info.magnolia.context.MgnlContext;
42 import info.magnolia.context.UserContext;
43
44
45
46
47
48
49 public class AuditLoggingUtil {
50
51 public static final String ACTION_CREATE = "create";
52 public static final String ACTION_MODIFY = "modify";
53 public static final String ACTION_DELETE = "delete";
54 public static final String ACTION_COPY = "copy";
55 public static final String ACTION_MOVE = "move";
56 public static final String ACTION_ACTIVATE = "activate";
57 public static final String ACTION_DEACTIVATE = "deactivate";
58 public static final String ACTION_LOGIN = "login";
59 public static final String ACTION_LOGOUT = "logout";
60
61
62
63
64 public static void log(String action, String workspaceName, ItemType nodeType, String nodePath) {
65 AuditLoggingUtil.log(action, new String[]{AuditLoggingUtil.getUser(), workspaceName, nodeType == null ? "" : nodeType.getSystemName(), nodePath});
66 }
67
68
69
70
71 public static void log(String action, String workspaceName, String nodePathFrom, String nodePathTo ) {
72 AuditLoggingUtil.log(action, new String[]{AuditLoggingUtil.getUser(), workspaceName, nodePathFrom, nodePathTo});
73 }
74
75
76
77
78 public static void log(final UserContext userContext ) {
79 AuditLoggingUtil.log(AuditLoggingUtil.ACTION_LOGOUT, null, (String) null, null);
80 }
81
82
83
84
85 public static void log(final LoginResult loginResult, final HttpServletRequest request ) {
86 String userid = "";
87 String result = "";
88 if(loginResult.getStatus() == LoginResult.STATUS_SUCCEEDED
89 || loginResult.getStatus() == LoginResult.STATUS_FAILED) {
90
91 userid = request.getParameter(FormLogin.PARAMETER_USER_ID);
92
93 if(loginResult.getStatus() == LoginResult.STATUS_SUCCEEDED) {
94 result = "Success";
95 } else {
96 result = "Failure " + loginResult.getLoginException().getLocalizedMessage();
97 }
98 AuditLoggingUtil.log(AuditLoggingUtil.ACTION_LOGIN, new String[]{userid, request.getRemoteAddr(), result});
99 }
100
101 }
102
103 private static void log(String action, String[] data) {
104 AuditLoggingManager manager = AuditLoggingManager.getInstance();
105 if(manager != null) {
106 manager.log(action, data);
107 }
108 }
109
110 private static String getUser() {
111 if (MgnlContext.isSystemInstance()) {
112 return "SystemUser";
113 }
114 try {
115 if(MgnlContext.hasInstance() && MgnlContext.getUser() != null) {
116 return MgnlContext.getUser().getName();
117 }
118 }catch (Exception e) {
119 return "system user";
120 }
121 return "user not set";
122 }
123
124 }