浏览代码

SEC-175: Add equals(Object) method.

Ben Alex 19 年之前
父节点
当前提交
78df09db8a
共有 1 个文件被更改,包括 38 次插入0 次删除
  1. 38 0
      core/src/main/java/org/acegisecurity/ui/WebAuthenticationDetails.java

+ 38 - 0
core/src/main/java/org/acegisecurity/ui/WebAuthenticationDetails.java

@@ -79,6 +79,44 @@ public class WebAuthenticationDetails implements SessionIdentifierAware,
      */
     protected void doPopulateAdditionalInformation(HttpServletRequest request) {}
 
+    public boolean equals(Object obj) {
+        if (obj instanceof WebAuthenticationDetails) {
+            WebAuthenticationDetails rhs = (WebAuthenticationDetails) obj;
+
+            if ((remoteAddress == null) && (rhs.getRemoteAddress() != null)) {
+                return false;
+            }
+
+            if ((remoteAddress != null) && (rhs.getRemoteAddress() == null)) {
+                return false;
+            }
+
+            if (remoteAddress != null) {
+                if (!remoteAddress.equals(rhs.getRemoteAddress())) {
+                    return false;
+                }
+            }
+
+            if ((sessionId == null) && (rhs.getSessionId() != null)) {
+                return false;
+            }
+
+            if ((sessionId != null) && (rhs.getSessionId() == null)) {
+                return false;
+            }
+
+            if (sessionId != null) {
+                if (!sessionId.equals(rhs.getSessionId())) {
+                    return false;
+                }
+            }
+
+            return true;
+        }
+
+        return false;
+    }
+
     /**
      * Indicates the TCP/IP address the authentication request was received
      * from.