You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oltu.apache.org by si...@apache.org on 2013/09/19 11:45:21 UTC
svn commit: r1524671 - in /oltu/trunk/jose/jws/src:
main/java/org/apache/oltu/jose/jws/
main/java/org/apache/oltu/jose/jws/signature/
test/java/org/apache/oltu/jose/jws/signature/
Author: simonetripodi
Date: Thu Sep 19 09:45:20 2013
New Revision: 1524671
URL: http://svn.apache.org/r1524671
Log:
OLTU-118 - Implement JWS of the JOSE working group
both signature calculation/verification need the payload in order to sign/verify the JWS
Modified:
oltu/trunk/jose/jws/src/main/java/org/apache/oltu/jose/jws/JWS.java
oltu/trunk/jose/jws/src/main/java/org/apache/oltu/jose/jws/signature/SignatureMethod.java
oltu/trunk/jose/jws/src/test/java/org/apache/oltu/jose/jws/signature/SignatureMethodTestCase.java
oltu/trunk/jose/jws/src/test/java/org/apache/oltu/jose/jws/signature/TestSignatureMethod.java
Modified: oltu/trunk/jose/jws/src/main/java/org/apache/oltu/jose/jws/JWS.java
URL: http://svn.apache.org/viewvc/oltu/trunk/jose/jws/src/main/java/org/apache/oltu/jose/jws/JWS.java?rev=1524671&r1=1524670&r2=1524671&view=diff
==============================================================================
--- oltu/trunk/jose/jws/src/main/java/org/apache/oltu/jose/jws/JWS.java (original)
+++ oltu/trunk/jose/jws/src/main/java/org/apache/oltu/jose/jws/JWS.java Thu Sep 19 09:45:20 2013
@@ -203,8 +203,11 @@ public class JWS {
if (signingKey == null) {
throw new IllegalArgumentException("A signing key is required in order to calculate the signature.");
}
+ if (payload == null) {
+ throw new IllegalStateException("Payload needs to be set in order to sign the current JWT");
+ }
setAlgorithm(method.getAlgorithm());
- return setSignature(method.calculate(signingKey));
+ return setSignature(method.calculate(payload, signingKey));
}
public JWS build() {
Modified: oltu/trunk/jose/jws/src/main/java/org/apache/oltu/jose/jws/signature/SignatureMethod.java
URL: http://svn.apache.org/viewvc/oltu/trunk/jose/jws/src/main/java/org/apache/oltu/jose/jws/signature/SignatureMethod.java?rev=1524671&r1=1524670&r2=1524671&view=diff
==============================================================================
--- oltu/trunk/jose/jws/src/main/java/org/apache/oltu/jose/jws/signature/SignatureMethod.java (original)
+++ oltu/trunk/jose/jws/src/main/java/org/apache/oltu/jose/jws/signature/SignatureMethod.java Thu Sep 19 09:45:20 2013
@@ -24,9 +24,9 @@ package org.apache.oltu.jose.jws.signatu
*/
public interface SignatureMethod<S extends SigningKey, V extends VerifyingKey> {
- String calculate(S signingKey);
+ String calculate(String payload, S signingKey);
- boolean verify(String signature, V verifyingKey);
+ boolean verify(String signature, String payload, V verifyingKey);
String getAlgorithm();
Modified: oltu/trunk/jose/jws/src/test/java/org/apache/oltu/jose/jws/signature/SignatureMethodTestCase.java
URL: http://svn.apache.org/viewvc/oltu/trunk/jose/jws/src/test/java/org/apache/oltu/jose/jws/signature/SignatureMethodTestCase.java?rev=1524671&r1=1524670&r2=1524671&view=diff
==============================================================================
--- oltu/trunk/jose/jws/src/test/java/org/apache/oltu/jose/jws/signature/SignatureMethodTestCase.java (original)
+++ oltu/trunk/jose/jws/src/test/java/org/apache/oltu/jose/jws/signature/SignatureMethodTestCase.java Thu Sep 19 09:45:20 2013
@@ -25,38 +25,42 @@ import org.junit.Test;
public final class SignatureMethodTestCase {
- private String signature;
+ private String payload;
private TestSymetricKey key;
+ private String signature;
+
private TestSignatureMethod method;
@Before
public void setUp() {
- signature = "supercalifragilistichespiralidoso123456789";
- key = new TestSymetricKey(signature);
+ payload = "{\"iss\":\"joe\",\r\n \"exp\":1300819380,\r\n \"http://example.com/is_root\":true}";
+ key = new TestSymetricKey("supercalifragilistichespiralidoso1234567890");
+ signature = payload + key.getValue();
method = new TestSignatureMethod();
}
@After
public void tearDown() {
- signature = null;
+ payload = null;
key = null;
+ signature = null;
method = null;
}
@Test
public void simpleSignatureVerification() {
- assertEquals(signature, method.calculate(key));
- assertTrue(method.verify(signature, key));
+ assertEquals(signature, method.calculate(payload, key));
+ assertTrue(method.verify(signature, payload, key));
}
@Test
public void signJWS() {
JWS jws = new JWS.Builder()
.setType("JWT")
- .setPayload("{\"iss\":\"joe\",\r\n \"exp\":1300819380,\r\n \"http://example.com/is_root\":true}")
- .sign( method, key )
+ .setPayload(payload)
+ .sign(method, key)
.build();
assertEquals("TEST", jws.getHeader().getAlgorithm());
Modified: oltu/trunk/jose/jws/src/test/java/org/apache/oltu/jose/jws/signature/TestSignatureMethod.java
URL: http://svn.apache.org/viewvc/oltu/trunk/jose/jws/src/test/java/org/apache/oltu/jose/jws/signature/TestSignatureMethod.java?rev=1524671&r1=1524670&r2=1524671&view=diff
==============================================================================
--- oltu/trunk/jose/jws/src/test/java/org/apache/oltu/jose/jws/signature/TestSignatureMethod.java (original)
+++ oltu/trunk/jose/jws/src/test/java/org/apache/oltu/jose/jws/signature/TestSignatureMethod.java Thu Sep 19 09:45:20 2013
@@ -19,13 +19,13 @@ package org.apache.oltu.jose.jws.signatu
final class TestSignatureMethod implements SignatureMethod<TestSymetricKey, TestSymetricKey> {
@Override
- public String calculate(TestSymetricKey signingKey) {
- return signingKey.getValue();
+ public String calculate(String payload, TestSymetricKey signingKey) {
+ return payload + signingKey.getValue();
}
@Override
- public boolean verify(String signature, TestSymetricKey verifyingKey) {
- return signature.equals(verifyingKey.getValue());
+ public boolean verify(String signature, String payload, TestSymetricKey verifyingKey) {
+ return signature.equals(payload + verifyingKey.getValue());
}
@Override