From ef1b00c21d37b06dd9b8f04cf7dd10b5c44ddbdc Mon Sep 17 00:00:00 2001 From: Devendra Date: Tue, 20 Aug 2013 15:36:22 +0530 Subject: [PATCH] making auth key optional for grant and revoke --- java/Pubnub-StandardEdition-3.5.4.jar | Bin 57891 -> 57970 bytes java/doc/allclasses-frame.html | 4 +- java/doc/allclasses-noframe.html | 4 +- java/doc/com/pubnub/api/Callback.html | 4 +- java/doc/com/pubnub/api/HttpUtil.html | 4 +- java/doc/com/pubnub/api/Pubnub.html | 85 ++++++++++++++++++- java/doc/com/pubnub/api/PubnubError.html | 4 +- java/doc/com/pubnub/api/PubnubException.html | 4 +- java/doc/com/pubnub/api/PubnubUtil.html | 4 +- java/doc/com/pubnub/api/package-frame.html | 4 +- java/doc/com/pubnub/api/package-summary.html | 4 +- java/doc/com/pubnub/api/package-tree.html | 4 +- java/doc/constant-values.html | 4 +- java/doc/deprecated-list.html | 4 +- java/doc/help-doc.html | 4 +- java/doc/index-all.html | 13 ++- java/doc/index.html | 2 +- java/doc/overview-tree.html | 4 +- java/doc/serialized-form.html | 4 +- java/jars/Pubnub-UnitTests-3.5.4.jar | Bin 60155 -> 60155 bytes java/jars/PubnubDemoConsole.jar | Bin 2857180 -> 2857259 bytes java/jars/PubnubExample.jar | Bin 2857176 -> 2857255 bytes java/src/com/pubnub/api/Pubnub.java | 45 +++++++++- 23 files changed, 165 insertions(+), 40 deletions(-) diff --git a/java/Pubnub-StandardEdition-3.5.4.jar b/java/Pubnub-StandardEdition-3.5.4.jar index df40bf54d6a248d987e996b4fae6468d7f68d93c..7f7882506a212d82fcd787cfe8291c7874dbc818 100644 GIT binary patch delta 6161 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 Mvrx)kJ%3jI4+p)qo&W#< delta 6005 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 - + All Classes - + diff --git a/java/doc/allclasses-noframe.html b/java/doc/allclasses-noframe.html index 79523198d..60db9a87b 100644 --- a/java/doc/allclasses-noframe.html +++ b/java/doc/allclasses-noframe.html @@ -2,12 +2,12 @@ - + All Classes - + diff --git a/java/doc/com/pubnub/api/Callback.html b/java/doc/com/pubnub/api/Callback.html index ac46328dd..18a87b58a 100644 --- a/java/doc/com/pubnub/api/Callback.html +++ b/java/doc/com/pubnub/api/Callback.html @@ -2,12 +2,12 @@ - + Callback - + diff --git a/java/doc/com/pubnub/api/HttpUtil.html b/java/doc/com/pubnub/api/HttpUtil.html index 837269349..b58eb97ad 100644 --- a/java/doc/com/pubnub/api/HttpUtil.html +++ b/java/doc/com/pubnub/api/HttpUtil.html @@ -2,12 +2,12 @@ - + HttpUtil - + diff --git a/java/doc/com/pubnub/api/Pubnub.html b/java/doc/com/pubnub/api/Pubnub.html index fa4e13d52..82ffb2d51 100644 --- a/java/doc/com/pubnub/api/Pubnub.html +++ b/java/doc/com/pubnub/api/Pubnub.html @@ -2,12 +2,12 @@ - + Pubnub - + @@ -530,6 +530,29 @@

 void +pamGrant(java.lang.String channel, + boolean read, + boolean write, + Callback callback) + +
+          Grant r/w access based on channel + + + + void +pamGrant(java.lang.String channel, + boolean read, + boolean write, + int ttl, + Callback callback) + +
+          Grant r/w access based on channel + + + + void pamGrant(java.lang.String channel, java.lang.String auth_key, boolean read, @@ -555,6 +578,15 @@

 void +pamRevoke(java.lang.String channel, + Callback callback) + +
+          ULS revoke by channel + + + + void pamRevoke(java.lang.String channel, java.lang.String auth_key, Callback callback) @@ -1479,6 +1511,39 @@


+

+pamGrant

+
+public void pamGrant(java.lang.String channel,
+                     boolean read,
+                     boolean write,
+                     Callback callback)
+
+
Grant r/w access based on channel +

+

+
Parameters:
channel -
read -
write -
callback -
+
+
+
+ +

+pamGrant

+
+public void pamGrant(java.lang.String channel,
+                     boolean read,
+                     boolean write,
+                     int ttl,
+                     Callback callback)
+
+
Grant r/w access based on channel +

+

+
Parameters:
channel -
read -
write -
ttl -
callback -
+
+
+
+

pamGrant

@@ -1492,7 +1557,7 @@ 

Grant r/w access based on channel and auth key

-
Parameters:
channel -
auth_key -
read -
write -
callback -
+
Parameters:
channel -
auth_key -
read -
write -
ttl -
callback -

@@ -1554,6 +1619,20 @@


+

+pamRevoke

+
+public void pamRevoke(java.lang.String channel,
+                      Callback callback)
+
+
ULS revoke by channel +

+

+
Parameters:
channel -
callback -
+
+
+
+

shutdown

diff --git a/java/doc/com/pubnub/api/PubnubError.html b/java/doc/com/pubnub/api/PubnubError.html
index 8da71035a..3320548b9 100644
--- a/java/doc/com/pubnub/api/PubnubError.html
+++ b/java/doc/com/pubnub/api/PubnubError.html
@@ -2,12 +2,12 @@
 
 
 
-
+
 
 PubnubError
 
 
-
+
 
 
 
diff --git a/java/doc/com/pubnub/api/PubnubException.html b/java/doc/com/pubnub/api/PubnubException.html
index dd9e79f1d..9b0d99b44 100644
--- a/java/doc/com/pubnub/api/PubnubException.html
+++ b/java/doc/com/pubnub/api/PubnubException.html
@@ -2,12 +2,12 @@
 
 
 
-
+
 
 PubnubException
 
 
-
+
 
 
 
diff --git a/java/doc/com/pubnub/api/PubnubUtil.html b/java/doc/com/pubnub/api/PubnubUtil.html
index ca0fea9da..f9c7855c6 100644
--- a/java/doc/com/pubnub/api/PubnubUtil.html
+++ b/java/doc/com/pubnub/api/PubnubUtil.html
@@ -2,12 +2,12 @@
 
 
 
-
+
 
 PubnubUtil
 
 
-
+
 
 
 
diff --git a/java/doc/com/pubnub/api/package-frame.html b/java/doc/com/pubnub/api/package-frame.html
index eb254c399..7a9ce08b6 100644
--- a/java/doc/com/pubnub/api/package-frame.html
+++ b/java/doc/com/pubnub/api/package-frame.html
@@ -2,12 +2,12 @@
 
 
 
-
+
 
 com.pubnub.api
 
 
-
+
 
 
 
diff --git a/java/doc/com/pubnub/api/package-summary.html b/java/doc/com/pubnub/api/package-summary.html
index c80d3855f..4268389f4 100644
--- a/java/doc/com/pubnub/api/package-summary.html
+++ b/java/doc/com/pubnub/api/package-summary.html
@@ -2,12 +2,12 @@
 
 
 
-
+
 
 com.pubnub.api
 
 
-
+
 
 
 
diff --git a/java/doc/com/pubnub/api/package-tree.html b/java/doc/com/pubnub/api/package-tree.html
index 3fdf78495..77e7086a0 100644
--- a/java/doc/com/pubnub/api/package-tree.html
+++ b/java/doc/com/pubnub/api/package-tree.html
@@ -2,12 +2,12 @@
 
 
 
-
+
 
 com.pubnub.api Class Hierarchy
 
 
-
+
 
 
 
diff --git a/java/doc/constant-values.html b/java/doc/constant-values.html
index 6ef12179f..07a0f0975 100644
--- a/java/doc/constant-values.html
+++ b/java/doc/constant-values.html
@@ -2,12 +2,12 @@
 
 
 
-
+
 
 Constant Field Values
 
 
-
+
 
 
 
diff --git a/java/doc/deprecated-list.html b/java/doc/deprecated-list.html
index f06bb5d83..99645b4ff 100644
--- a/java/doc/deprecated-list.html
+++ b/java/doc/deprecated-list.html
@@ -2,12 +2,12 @@
 
 
 
-
+
 
 Deprecated List
 
 
-
+
 
 
 
diff --git a/java/doc/help-doc.html b/java/doc/help-doc.html
index edee9f024..28f8e7648 100644
--- a/java/doc/help-doc.html
+++ b/java/doc/help-doc.html
@@ -2,12 +2,12 @@
 
 
 
-
+
 
 API Help
 
 
-
+
 
 
 
diff --git a/java/doc/index-all.html b/java/doc/index-all.html
index 92475133c..980ff62ab 100644
--- a/java/doc/index-all.html
+++ b/java/doc/index-all.html
@@ -2,12 +2,12 @@
 
 
 
-
+
 
 Index
 
 
-
+
 
 
 
@@ -261,12 +261,21 @@
 
pamGrant(String, String, boolean, boolean, Callback) - Method in class com.pubnub.api.Pubnub
Grant r/w access based on channel and auth key +
pamGrant(String, boolean, boolean, Callback) - +Method in class com.pubnub.api.Pubnub +
Grant r/w access based on channel +
pamGrant(String, boolean, boolean, int, Callback) - +Method in class com.pubnub.api.Pubnub +
Grant r/w access based on channel
pamGrant(String, String, boolean, boolean, int, Callback) - Method in class com.pubnub.api.Pubnub
Grant r/w access based on channel and auth key
pamRevoke(String, String, Callback) - Method in class com.pubnub.api.Pubnub
ULS revoke by channel and auth key +
pamRevoke(String, Callback) - +Method in class com.pubnub.api.Pubnub +
ULS revoke by channel
PNERR_CLIENT_TIMEOUT - Static variable in class com.pubnub.api.PubnubError
Client Timeout . diff --git a/java/doc/index.html b/java/doc/index.html index a7db3f219..cea17a207 100644 --- a/java/doc/index.html +++ b/java/doc/index.html @@ -2,7 +2,7 @@ - + Generated Documentation (Untitled) diff --git a/java/doc/overview-tree.html b/java/doc/overview-tree.html index 55d4edd5d..f9a81ffaa 100644 --- a/java/doc/overview-tree.html +++ b/java/doc/overview-tree.html @@ -2,12 +2,12 @@ - + Class Hierarchy - + diff --git a/java/doc/serialized-form.html b/java/doc/serialized-form.html index 2e616b2b5..c664d89c2 100644 --- a/java/doc/serialized-form.html +++ b/java/doc/serialized-form.html @@ -2,12 +2,12 @@ - + Serialized Form - + diff --git a/java/jars/Pubnub-UnitTests-3.5.4.jar b/java/jars/Pubnub-UnitTests-3.5.4.jar index bf8af3fa9f34c9a4ef14bab0f4257e730df942f0..acba6203287c2a2e06a127d5a552953e1ca1f0a3 100644 GIT binary patch delta 1778 zcmYjReN0<*6n(F+t<^ybjd!PwnE4HlcPx5Q<@P~sk;ybG;*9C)^=m9C0))4hp<_?8+J%2s!2vs zY1|<+>=*hyDAHuEL1Xc{7OahCcfjru3#@KF%ezCUtI#tA;*!ej}e#^N-{+1goDd5!Zc@!&^9=>9;9+NkhrAcA+N4I2)x~jtvxaf)Rek7_w9l2bsBo!eA z`>82PgL=5S96Q|D_BZ;jnQNrNVIo5obA;xCNGVE7dTTXoYmEd&owd(1@%*bZm;APS zH77Vi+RL=8sxA+6Jk=oPur{8=8JVv(L!$7*=iVgk9XfWxa#td>>CwkRe{ef#KWB6MUQ7=p!LH*D-LfE+ zzyBb1$QnG3$T7SR(F@1_p@prs>9=1k;Y=nj#9AT5fsc2h==T%XmBNc5bEmU}y|fq~ zzbNC>spRbFIugHh5Bu~P6- z0cfX@vP_r%_ot_w$;3CE1CmvCG`(m?(>HcBt#E*;>E|3D;Z3hO(Db*w>Ysf z=)^WrCsL&|NFAO*Dm;T!feWd3TqYqOopP>^1ii^5<}yIO$J|>147kkzV(xkX4W8Wq zoSy9fa=o~dPOk|nUN2JlKJ0VEhkb7OkTUtvHR4B#2_RJyKIZJ?l%MM`ewmgM?nA5r5c_t&DxRbR^QCtO*-3qH%&XK46Ln>lT(=i2! z9^_QZh?qAHFh8pN-bY+LId*RjN7=1=KQ}9@cbXttm}L^M|lmI_q|bDXKwA zQK{@9)XZ19y(m&=tVCncnkK9bXSKofuDD$;A3y!owGjwAxm2$uu4El^IHw%t!Q4Y) ze$MPA$(>4e&KERAW$<(Q^2{h&Qt%XrYCaq~E@cIuv0*ZKQGHP=VUrf0)RC#S{^-K_nEVA>B1-qV}4X=y>kcnM!`& zy@C}SC9S0zMp>JSIX2e`Ijr@ka7M=KjgTn(#QC>LYnzrCvpf*c67SQE7hi?Fsmj z*-KJZokGqHuOaaZ4>8Z3Rl@Y>-XXC}pqP)pUx7_d4+}S2d+vFxS%0cUv~b~`6yE*Z znvq7@lj;2@aX!_2MrX>zAHT;_GBb@0C2b#Wgpeg1+?G`6i z`kmM&>O^Y&6jDc~kP1&BmG468J(rQsCrUowLxSEU5_9Px-_!1`0Q%e}05P{2K%Hkd z0Hdm+Gi~BebHQU55s@c}B!&$9clG3NZ{8XsuX&b}mJqIBJcRD78FV)bV05M&4xzq^ zRQ*+~j0lzZ*=?XP3*h1`HcX#G>fN~=pqZX~0YKjTCIAQK@uFRxe-SEa3kX^S;1)nm U7^$u>_6dipz*Vw{pl@;Kzbf+CzW@LL diff --git a/java/jars/PubnubDemoConsole.jar b/java/jars/PubnubDemoConsole.jar index fe61e6fee27f467ee9dcefc23f1322a27cb3f143..d0b54cb5f281a304f1b6ec60ab3edaeecfccbc14 100644 GIT binary patch delta 10683 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 delta 10583 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 diff --git a/java/src/com/pubnub/api/Pubnub.java b/java/src/com/pubnub/api/Pubnub.java index 5a5f38e8e..3558d3e27 100644 --- a/java/src/com/pubnub/api/Pubnub.java +++ b/java/src/com/pubnub/api/Pubnub.java @@ -582,11 +582,35 @@ public void pamGrant(final String channel, String auth_key, boolean read, pamGrant(channel, auth_key, read, write, -1, callback); } + /** Grant r/w access based on channel + * @param channel + * @param read + * @param write + * @param callback + */ + public void pamGrant(final String channel, boolean read, + boolean write, final Callback callback) { + pamGrant(channel, null, read, write, -1, callback); + } + + /** Grant r/w access based on channel + * @param channel + * @param read + * @param write + * @param ttl + * @param callback + */ + public void pamGrant(final String channel, boolean read, + boolean write, int ttl, final Callback callback) { + pamGrant(channel, null, read, write, ttl, callback); + } + /** Grant r/w access based on channel and auth key * @param channel * @param auth_key * @param read * @param write + * @param ttl * @param callback */ public void pamGrant(final String channel, String auth_key, boolean read, @@ -607,9 +631,12 @@ public void pamGrant(final String channel, String auth_key, boolean read, return; } - String sign_input = this.SUBSCRIBE_KEY + "\n" + this.PUBLISH_KEY + "\n" - + "grant" + "\n" + "auth=" + auth_key + "&" + "channel=" - + channel + "&" + "r=" + r + "&" + "timestamp=" + timestamp + String sign_input = this.SUBSCRIBE_KEY + "\n" + this.PUBLISH_KEY + "\n" + "grant" + "\n" ; + + if (auth_key != null && auth_key.length() > 0) + sign_input += "auth=" + auth_key + "&" ; + + sign_input += "channel=" + channel + "&" + "r=" + r + "&" + "timestamp=" + timestamp + ((ttl > -1)?"&" + "ttl=" + ttl:"") + "&" + "w=" + w; @@ -628,7 +655,8 @@ public void pamGrant(final String channel, String auth_key, boolean read, parameters.put("signature", signature); parameters.put("r", r); parameters.put("channel", channel); - parameters.put("auth", auth_key); + + if (auth_key != null && auth_key.length() > 0 ) parameters.put("auth", auth_key); if (ttl > 0) parameters.put("ttl", String.valueOf(ttl)); String[] urlComponents = { getPubnubUrl(), "v1", "auth", "grant", "sub-key", @@ -864,4 +892,13 @@ public void pamRevoke(String channel, String auth_key, Callback callback) { pamGrant(channel, auth_key, false, false, callback); } + + /** ULS revoke by channel + * @param channel + * @param callback + */ + public void pamRevoke(String channel, Callback callback) { + pamGrant(channel, null, false, false, callback); + } + }