[Statelessfilter-commits] SF.net SVN: statelessfilter:[98] trunk
Status: Beta
Brought to you by:
nricheton
|
From: <nri...@us...> - 2011-12-23 16:15:28
|
Revision: 98
http://statelessfilter.svn.sourceforge.net/statelessfilter/?rev=98&view=rev
Author: nricheton
Date: 2011-12-23 16:15:22 +0000 (Fri, 23 Dec 2011)
Log Message:
-----------
cleanup
Modified Paths:
--------------
trunk/stateless-cookie-aes/src/main/java/net/sourceforge/statelessfilter/backend/aescookie/AESCookieBackend.java
trunk/stateless-cookie-aes-json/src/main/java/net/sourceforge/statelessfilter/backend/jsonaescookie/JSONAESCookieBackend.java
Modified: trunk/stateless-cookie-aes/src/main/java/net/sourceforge/statelessfilter/backend/aescookie/AESCookieBackend.java
===================================================================
--- trunk/stateless-cookie-aes/src/main/java/net/sourceforge/statelessfilter/backend/aescookie/AESCookieBackend.java 2011-12-23 16:02:07 UTC (rev 97)
+++ trunk/stateless-cookie-aes/src/main/java/net/sourceforge/statelessfilter/backend/aescookie/AESCookieBackend.java 2011-12-23 16:15:22 UTC (rev 98)
@@ -133,7 +133,8 @@
if (StringUtils.isEmpty(key) || StringUtils.isEmpty(iv)) {
throw new Exception(
- "aescookie.key or aescookie.iv parameter missing in /stateless.properties."); //$NON-NLS-1$
+ ID
+ + "." + PARAM_KEY + " or " + ID + "." + PARAM_IV + " parameter missing in /stateless.properties."); //$NON-NLS-1$
}
secretKey = new SecretKeySpec(getEncryptionBytes(key, 16), ENCRYPTION);
@@ -173,7 +174,8 @@
CookieDataSupport s = (CookieDataSupport) ois.readObject();
if (s.isValid()
- && s.getRemoteAddress().equals(getFullRemoteAddr(request))) {
+ && s.getRemoteAddress().equals(
+ getFullRemoteAddr(request))) {
return s;
}
}
Modified: trunk/stateless-cookie-aes-json/src/main/java/net/sourceforge/statelessfilter/backend/jsonaescookie/JSONAESCookieBackend.java
===================================================================
--- trunk/stateless-cookie-aes-json/src/main/java/net/sourceforge/statelessfilter/backend/jsonaescookie/JSONAESCookieBackend.java 2011-12-23 16:02:07 UTC (rev 97)
+++ trunk/stateless-cookie-aes-json/src/main/java/net/sourceforge/statelessfilter/backend/jsonaescookie/JSONAESCookieBackend.java 2011-12-23 16:15:22 UTC (rev 98)
@@ -19,6 +19,7 @@
import java.security.SignatureException;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
@@ -116,7 +117,12 @@
if (StringUtils.isEmpty(key) || StringUtils.isEmpty(iv)) {
throw new Exception(
- "jsonaescookie.key or jsonaescookie.iv parameter missing in /stateless.properties."); //$NON-NLS-1$
+ ID
+ + "."
+ + PARAM_KEY
+ + " or "
+ + ID
+ + "." + PARAM_IV + " parameter missing in /stateless.properties."); //$NON-NLS-1$
}
secretKey = new SecretKeySpec(getEncryptionBytes(key, 16), ENCRYPTION);
@@ -151,7 +157,8 @@
CookieDataSupport.class);
if (s.isValid()
- && s.getRemoteAddress().equals(getFullRemoteAddr(request))) {
+ && s.getRemoteAddress().equals(
+ getFullRemoteAddr(request))) {
return s;
}
}
@@ -176,6 +183,9 @@
CookieDataSupport cookieData = new CookieDataSupport(session);
cookieData.setRemoteAddress(getFullRemoteAddr(request));
+ // JSON only supports Strings.
+ ensureStrings(session.getContent());
+
String dataString = mapper.writeValueAsString(cookieData);
byte[] data;
@@ -203,4 +213,25 @@
throw new IOException(e);
}
}
+
+ /**
+ * Throw IllegalArgumentException if the map does not contains only String
+ * objects.
+ *
+ * @param map
+ */
+ private void ensureStrings(Map<String, Object> map) {
+
+ if (map == null || map.size() == 0)
+ return;
+
+ Set<String> keys = map.keySet();
+ for (String key : keys) {
+ if (!(map.get(key) instanceof String)) {
+ throw new IllegalArgumentException(
+ key
+ + " is not a String. JSON stateless session only support string data.");
+ }
+ }
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|